なぜほとんどのC#プログラムの静的でmainメソッドのエントリポイントはありますか?

StackOverflow https://stackoverflow.com/questions/2366952

  •  23-09-2019
  •  | 
  •  

質問

なぜ、ほとんどのC#のプログラムの主なメソッドのエントリポイント静的な?

役に立ちましたか?

解決

はインスタンスメソッドを呼び出すためには、オブジェクトのインスタンスを必要としています。この手段は、あなたのプログラムを起動するために、CLRは、メソッドProgramを呼び出すために言うのMainのインスタンスを作成する必要があります。したがってProgramのコンストラクタは完全にメインを持つことの目的に反しMain前に実行します。

他のヒント

私は周りの質問を回すと思います。主なインスタンスメソッドできるようにする機能を実装するための魅力的な利点は何ですか?特長は高価であり、何の説得力の恩恵がない場合、彼らは実装されません。

あなたが主なインスタンスメソッドであることを許可すべき理由は本当に良い理由を持っていますか?

は概念的にはあなただけの静的のインスタンスを1つ持っています。そして、静的メソッドは、プログラムのための単一の凝視ポイントのイディオムによくマッピングされます。言語設計者は、mainメソッドで使用する特殊なプログラムのクラスを作成したが、エントリポイントとして単一の静的関数を作成することを選んだかもしれません。いくつかのレベルではその実際には設計上の選択ます。

それ以外の場合は、オブジェクトを作成しなければならない、とコンストラクタを実行すると、マイナスの副作用を引き起こす可能性があるため。

どのようにあなたがそれ以外の場合は、メインの前に、あなたのクラスのインスタンスを作成することができます?

.NET runtimeMainメソッドを呼び出します。 (注:主はまた、例えばでExampleClassの別の方法でコードのmain()から、他の場所から呼び出すことができる。)staticキーワードはinstanceExampleClassせずにアクセス可能な方法を作ります。だから、主な方法は、エントリー・ポイントであり、静的に宣言されている必要があります。

  

それ以外の場合は、プログラムが必要になります   インスタンスが、どのインスタンスだろう   プログラムを必要とします。

解決できないcircular dependency の主がエントリポイント

として使用されることを避けるために

<時間>

参照: http://en.wikipedia.org/wiki/C_Sharp_(programming_language

静的メソッドは、インスタンスを作成せずに実行することができます。慣例により、彼らは、コールにデフォルトの方法としてmainメソッドを持っています。

は、クラスのすべてのオブジェクトのための主要な方法と他の方法と変数を含む、すべてのオブジェクトが、メインクラスのコピーに含まれる各変数やメソッドの独立したコピーは、それらの間だけ1とその数のコピーを作成することがあります私たちは、静的としてmainメソッドを作成する必要がオブジェクトます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top