1

これらは同じですか?

public void MyMethod() {do something}

public MyMethod() {do something}

voidつまり、何も返さないということです。つまり、このキーワードを除外すると、何も返さないということになりますか? もしそうなら、なぜその言葉がその言語に存在するのか - それは他の状況で使われているのか?

4

5 に答える 5

7

2 番目のオプションはコンパイルされません。

C# 仕様では、返す結果がない場合でも、すべてのメソッドが型を返す必要があります。

メソッドは、アクセス レベル、 戻り値、メソッドの名前、および任意のメソッド パラメータを指定することによって、クラスまたは構造体内で宣言されます。...

他の人が指摘したように、例外はクラス コンストラクターです。

MSDN のメソッド (C# プログラミング ガイド)

于 2012-09-04T07:46:55.817 に答える
2

void または型に関係なく、常にメソッドの戻り値の型を指定する必要があります。コンストラクターは例外です。

于 2012-09-04T07:47:09.057 に答える
2

で 2 番目のケースを実行することはできませんC#。コンパイルされません。ではC#、 「何もない」場合でも、常に明示的に戻り値の型を指定する必要があります。

于 2012-09-04T07:48:01.880 に答える
1

void構文を戻り値の型を持つ関数/メソッドと互換性を保ちながら、戻り値のないプレースホルダーになると考えてください。

于 2012-09-04T07:48:43.313 に答える
1

最初の行はpublicインスタンスメソッドです。というc 自体ではないclass(またはstruct)内でのみ発生する可能性があります。MyMethod

2 番目の例は、publicインスタンスコンストラクターです。classそれ自体が呼び出されるa の内部で発生する可能性がありますMyMethod(ただし、クラスの奇妙な名前です)。

于 2012-09-04T08:17:45.790 に答える