【C#】エントリ ポイント 'Main()' を無視とはどういう意味か

前提

hoge.csxdotnet 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 コメント