C# ジェネリック メソッドの戻り値処理
C# では、ジェネリック メソッドを定義するときに、型パラメーター T が値型 (int や構造体など) の場合、null を値型に割り当てることができないため、null を返すとコンパイル エラーが発生します。
解決策
この問題を解決するにはいくつかの方法があります:
default(T)
を使用して、型パラメーター T のデフォルト値を返します。参照型の場合、整数の場合は null が返され、ゼロが返されます。 where T : class
制約を使用して、型パラメーター T を参照型に制限します。このようにして、エラーなしで null を返すことができます。 where T : struct
制約を使用して、return を使用してメソッドから null を返すことができます。 T?
のタイプ。これは、null 以外の値型の null 値を表します。 例:
<code class="language-csharp">static T FindThing<T>(IList collection, int id) where T : IThing, new() { foreach (T thing in collection) { if (thing.Id == id) return thing; } return default(T); // 返回类型T的默认值 }</code>
特定のニーズに最も適したメソッドを選択し、戻り値が T の予期される型と null 可能性と一致していることを確認してください。
以上がC# でジェネリック メソッドから安全に値を返すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。