ホームページ > バックエンド開発 > C++ > C# でジェネリック メソッドから安全に値を返すにはどうすればよいですか?

C# でジェネリック メソッドから安全に値を返すにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-09 17:17:40
オリジナル
484 人が閲覧しました

How Can I Safely Return Values from Generic Methods in C#?

C# ジェネリック メソッドの戻り値処理

C# では、ジェネリック メソッドを定義するときに、型パラメーター T が値型 (int や構造体など) の場合、null を値型に割り当てることができないため、null を返すとコンパイル エラーが発生します。

解決策

この問題を解決するにはいくつかの方法があります:

  • デフォルト値を返す: default(T) を使用して、型パラメーター T のデフォルト値を返します。参照型の場合、整数の場合は null が返され、ゼロが返されます。
  • T を参照型にする制約: where T : class 制約を使用して、型パラメーター T を参照型に制限します。このようにして、エラーなしで null を返すことができます。
  • T を null 非許容値型にする制約: 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート