前提
hoge.csx
を dotnet script .\hoge.csx
で動作させようとしたのですが, warningが出てしまい思う通りの挙動になりません.
エントリポイントについて調べると
Main という名前の静的メソッドを1個だけ書くことで、
このメソッドがエントリー ポイントになる
とあり私のプログラムもそうなのですがwarningが消えません.
実現したいこと
プログラムを動作させる
発生している問題・エラーメッセージ
Console.ReadLine()
による入力待ちが起きてほしいが, 実際にはwarningが出るだけ
Warning
1CS7022 プログラムのエントリ ポイントは、グローバル コードです。エントリ ポイント 'Main()' を無視します。
該当のソースコード
c#
1class Program { 2 // 2点間の距離を求める 3 static double CalcDist(double x1, double y1, double x2, double y2) { 4 return Math.Sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)); 5 } 6 7 // 解く 8 static void Solve() { 9 var n = int.Parse(Console.ReadLine()); 10 (double[] x, double[] y) = (new double[n], new double[n]); 11 for(int i=0; i<n; i++) { 12 string line = Console.ReadLine(); 13 string[] array = line.Split(' '); 14 (x[i], y[i]) = (int.Parse(array[0]), int.Parse(array[1])); 15 Console.WriteLine($"x[i]: {x[i]}, y[i]: {y[i]}"); 16 } 17 18 double minimumDist = 100000000.0; 19 20 // 探索開始 21 for(int i=0; i<n; i++) { 22 for(int j=i+1; j<n; j++) { 23 double distij = CalcDist(x[i], y[i], x[j], y[j]); 24 25 if(distij < minimumDist) { 26 minimumDist = distij; 27 } 28 } 29 } 30 31 Console.WriteLine(minimumDist); 32 } 33 34 static void Main() { 35 Console.Write("number: "); 36 Solve(); 37 } 38}
試したこと
static void Solve()
の static
を抜いて Program.Solve()
とすると
Error
1error CS0120: 静的でないフィールド、メソッド、またはプロパティ 'Program.Solve()' で、オブジェクト参照が必要です
と余計に出た.
補足情報(FW/ツールのバージョンなど)
.NET 6
VBScript なんかはそうなんですが、エントリポイントはありません。
単に上から順に実行されるだけです。
C#Script もそうなのでは?
> Zuishinさん, コメントありがとうございます.
解決いたしました. 考えていただきありがとうございます.
> dodox86さん, KOZ6.0さん, コメントありがとうございます.
hoge.cs と hoge.csx の違いがよく分かっておらず変な質問となっていたかもしれません.
本件解決いたしました. 考えていただきありがとうございます.

回答2件
あなたの回答
tips
プレビュー