4

これは可能ですか?

private void Test(out List<ExampleClass>? ExClass)
{

}

out パラメータでもある null 許容 List<> ?

4

4 に答える 4

20

List<T>は参照型 (クラス) であるため、no?は必要ありません。メソッド本体のパラメータに代入nullするだけです。ExClass

于 2010-02-08T11:13:30.170 に答える
9

アントンが言ったように、使用する必要はありませんがNullable<T>、確かにoutパラメーターになる可能性があります。

private void Test(out List<ExampleClass> foo)

nullableList<T>と、List<T?>値の型に有効な a を混同している可能性があります...たとえば、次のように使用できます。

private void Test(out List<Guid?> foo)

これは、null 許容 GUID のリストである出力パラメーターになります。

一方で、メソッドにoutパラメーターを含めることは一般的に良いことではありません。通常は、代わりにパラメーターを戻り値の型として使用する必要があります。void

于 2010-02-08T11:15:15.323 に答える
2

? null 許容の ValueTypes にのみ使用します。

于 2010-02-08T11:16:00.907 に答える
0

ここでは、outパラメーターであるかどうかは関係ありません。Nullable<T>しかし、クラスで を作成することはできません。T構造体でなければなりません。そうしないと、コンパイラが文句を言います。

これに加えて、パラメーターの名前を大文字にすることは悪いスタイルと見なされます ( のexClass代わりに使用しますExClass)。あなたのプログラムは同じように動作しますが、あなたのコードを読んだ人は誤解を招く可能性があります。

于 2010-02-08T11:23:07.817 に答える