C# 言語の null 可能性機能に関するチュートリアル

歴史

C# 言語は当初設計時に null 値の問題を考慮していなかったため、null 参照型を扱うときに NullReferenceException (NullReferenceException) が発生しやすくなります。この目的を達成するために、C# 8 は 2019 年のリリース時に null 可能性機能を導入し、null 参照型のサポートを強化しました。

意味

null 可能性機能は、null 参照型のサポートを強化するための言語機能です。これにより、開発者は型またはメンバーが null 許容かどうかを明示的にマークし、コンパイル時に静的にチェックできるようになります。これにより、実行時の null 参照例外が回避されます。

使用説明書

C# で null 可能性機能を使用するには、次の手順が必要です。

  1. プロジェクト ファイルで null 許容機能を有効にするには、プロジェクト プロパティで「null 許容コンテキスト」オプションを「有効」または「警告」に設定します。
  2. コード内でアノテーション コンテキストを使用して、#nullableコンパイラに null 参照型の処理方法を指示します。
  3. nullablenotnullまたは注釈を使用して、maybe型またはメンバーが null 許容かどうかをマークします。
  4. Null 条件演算子または null 合体演算子を使用して、null 許容型またはメンバーを操作する場合の null 参照例外を回避します。

null 可能性機能を使用した例を次に示します。

#nullable enable
class Program
{
    static void Main(string[] args)
    {
        string? str = null;
        Console.WriteLine(str?.Length ?? 0); // 使用null条件运算符和null合并运算符来避免空引用异常

        List<string?> list = new List<string?>() { "apple", null, "banana" };
        foreach (string? item in list)
        {
            Console.WriteLine(item?.Length ?? 0); // 使用null条件运算符和null合并运算符来避免空引用异常
        }
    }
}
#nullable disable

アドバンテージ

Null 可能性機能を使用する利点は次のとおりです。

  1. Null 許容型またはメンバーを明示的にマークすると、コードがより明確になり理解しやすくなります。
  2. コンパイラはコンパイル時に null 参照型の使用をチェックして、null 参照例外のリスクを軽減できます。
  3. サードパーティのライブラリまたはフレームワークの場合、null 可能性アノテーションを使用して API の null 可能性を明確にし、API をより適切に使用できるようになります。

欠点がある

Null 可能性機能を使用する場合の欠点は次のとおりです。

  1. 構文は複雑で、null 許容型またはメンバーをそれぞれ明示的にマークする必要があります。
  2. null 可能性機能は以前の C# バージョンではサポートされておらず、null 参照例外を回避するにはより複雑なコードが必要でした。
  3. サポートされていないコード ベースでは、Null 可能性の警告が発生する可能性があるため、手動で無効にする必要があります。

以前と比較して

以前のバージョンの C# では、null 参照型を静的にチェックできないため、実行時に null チェックを実行する必要があり、null 参照例外が発生しやすくなります。この状況を回避するために、開発者は通常、各参照型が null かどうかを手動でチェックし、コード内に多くの null チェック コードを追加する必要があります。

C# 8 では、null 可能性機能が導入され、コンパイル時に null 参照型を静的にチェックできるため、煩雑な null チェック コードを回避できます。

null 可能性機能の使用例を 2 つ示します。

#nullable enable
string? str = null;
Console.WriteLine(str.Length); // 编译时会提示可能出现空引用异常

List<string> list = new List<string>() { "apple", null, "banana" };
foreach (string? item in list)
{
    Console.WriteLine(item?.Length); // 使用null条件运算符来避免空引用异常
}
#nullable disable

要約する

null 可能性機能は、開発者が型またはメンバーが null 可能かどうかを明示的にマークし、コンパイル時に静的にチェックできるようにする C# 言語の重要な機能です。null 可能性機能を使用すると、null 参照例外のリスクが軽減され、コードのセキュリティと読みやすさが向上します。同時に、開発者は、null 許容型またはメンバーをマークし、発生する可能性のある null 許容警告に対処するために余分な労力を費やす必要もあります。

おすすめ

転載: blog.csdn.net/JianShengShuaiest/article/details/130638712