0

Mainメソッドが静的クラスまたは非静的クラスで定義されている場合、またはそのクラスがパブリックであるかどうか、およびMainメソッドがパブリックであるかどうかに違いはありますか?

4

5 に答える 5

7

いいえ。唯一の条件は、ジェネリック型であってはならないということです。C# 4 仕様のセクション 3.1 から:

アプリケーション エントリ ポイントがジェネリック クラス宣言に含まれていない可能性があります。

同じように失敗するため、これは一般的な構造体宣言も含めることを意図していたのではないかと思います。(CLR は、指定する型引数を認識しません。)

voidエントリ ポイントの型がネスト、静的、任意のアクセシビリティなどであっても問題ありません。適切な戻り値の型 (またはint) と適切なパラメーター (なし またはstring[])がある限り、メソッド自体もプライベートにすることができます。もちろん、静的です。

于 2013-04-08T13:59:49.807 に答える
3

いいえ、それはまったく問題ではありません。

于 2013-04-08T13:59:32.897 に答える
3

MSDNによると:

Main は、クラスまたは構造体の中で宣言されています。メインは静的である必要があり、パブリックであってはなりません。(...) 囲んでいるクラスまたは構造体は静的である必要はありません。

ただし、なぜ公開してはいけないのかは完全には明らかではありません。(Java では public である必要があります)

クラス/構造体のアクセシビリティは問題ではありません。

于 2013-04-08T14:01:16.813 に答える
2

CLR は、メソッドがプライベートかパブリックかを実際には気にしません。通常の C# コードを使用して呼び出すことはありません。詳細はこちらをご覧ください

于 2013-04-08T14:04:23.160 に答える