前提
hoge.csx
を dotnet script .\hoge.csx
で動作させようとしたのですが, warningが出てしまい思う通りの挙動になりません.
エントリポイントについて調べると
Main という名前の静的メソッドを1個だけ書くことで、
このメソッドがエントリー ポイントになる
とあり私のプログラムもそうなのですがwarningが消えません.
実現したいこと
プログラムを動作させる
発生している問題・エラーメッセージ
Console.ReadLine()
による入力待ちが起きてほしいが, 実際にはwarningが出るだけ
Warning
CS7022 プログラムのエントリ ポイントは、グローバル コードです。エントリ ポイント 'Main()' を無視します。
該当のソースコード
c#
class Program { // 2点間の距離を求める static double CalcDist(double x1, double y1, double x2, double y2) { return Math.Sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)); } // 解く static void Solve() { var n = int.Parse(Console.ReadLine()); (double[] x, double[] y) = (new double[n], new double[n]); for(int i=0; i<n; i++) { string line = Console.ReadLine(); string[] array = line.Split(' '); (x[i], y[i]) = (int.Parse(array[0]), int.Parse(array[1])); Console.WriteLine($"x[i]: {x[i]}, y[i]: {y[i]}"); } double minimumDist = 100000000.0; // 探索開始 for(int i=0; i<n; i++) { for(int j=i+1; j<n; j++) { double distij = CalcDist(x[i], y[i], x[j], y[j]); if(distij < minimumDist) { minimumDist = distij; } } } Console.WriteLine(minimumDist); } static void Main() { Console.Write("number: "); Solve(); }}
試したこと
static void Solve()
の static
を抜いて Program.Solve()
とすると
Error
error CS0120: 静的でないフィールド、メソッド、またはプロパティ 'Program.Solve()' で、オブジェクト参照が必要です
と余計に出た.
補足情報(FW/ツールのバージョンなど)
.NET 6
0 コメント