Main
メソッドが静的クラスまたは非静的クラスで定義されている場合、またはそのクラスがパブリックであるかどうか、およびMain
メソッドがパブリックであるかどうかに違いはありますか?
5 に答える
いいえ。唯一の条件は、ジェネリック型であってはならないということです。C# 4 仕様のセクション 3.1 から:
アプリケーション エントリ ポイントがジェネリック クラス宣言に含まれていない可能性があります。
同じように失敗するため、これは一般的な構造体宣言も含めることを意図していたのではないかと思います。(CLR は、指定する型引数を認識しません。)
void
エントリ ポイントの型がネスト、静的、任意のアクセシビリティなどであっても問題ありません。適切な戻り値の型 (またはint
) と適切なパラメーター (なし またはstring[]
)がある限り、メソッド自体もプライベートにすることができます。もちろん、静的です。
いいえ、それはまったく問題ではありません。
MSDNによると:
Main は、クラスまたは構造体の中で宣言されています。メインは静的である必要があり、パブリックであってはなりません。(...) 囲んでいるクラスまたは構造体は静的である必要はありません。
ただし、なぜ公開してはいけないのかは完全には明らかではありません。(Java では public である必要があります)
クラス/構造体のアクセシビリティは問題ではありません。
CLR は、メソッドがプライベートかパブリックかを実際には気にしません。通常の C# コードを使用して呼び出すことはありません。詳細はこちらをご覧ください。