IRONSOFTWAREHOME

C#のNull合算演算子を理解する

[[academy-video-youtube({"vid":"aIp0jUr6A24", "start_time":"0", "title":"C#のNull合算演算子を理解する(? そして??=)", "creator": "Gerald Versluis", "length": "12分43秒"})]]

C#のNULL合体演算子(??)により、開発者はNULLチェックロジックを簡素化し、コードの冗長性を減らし、可読性を向上させることができます。 長い if-else 条件を書く代わりに、この演算子は null に遭遇したときにフォールバック値を割り当てる簡潔な方法を提供します。 この記事では、Gerald Versluis 氏のビデオ"Understanding C# Null Coalescing Operator (???)"に沿って、NULL 結合演算子について詳しく説明します。 および??=)"このビデオの重要な部分を分解し、ジェラルドがこの便利なC#機能をどのように実演しているかを分析します。

はじめに

ビデオの冒頭でジェラルドは、ヌルチェックに必要なコード行数を大幅に削減するC#の強力な機能として、ヌル合体演算子を紹介します。 彼は、この演算子が条件チェックを簡素化し、コードをより読みやすくすることを強調している。 その利点を説明するために、ジェラルドは、ヌル合体演算子のさまざまな使用例を実装し、説明するサンプル・アプリケーションを順を追って説明します。

サンプルアプリの概要

ジェラルドは、簡単なコンソール・アプリケーションをセットアップすることから始めます。 以前のビデオでは、デモにtry.dot.netのウェブサイトを使用していたが、バージョンの制限(C# 7のみをサポート)のため、Visual Studio for Macに切り替えたと述べている。 また、Visual Studio for Windowsでも使用できることを保証しています。

デモを準備するために、Geraldは基本的なNameプロパティを持たせます。

public class Person 
{
    public string Name { get; set; }
}

次に、このクラスのインスタンスを初期化して、NULL 結合演算子が実際のシナリオでどのように機能するかを紹介します。

NullチェックをNull-Coalescing演算子(?

ジェラルドは、ヌルチェック・ロジックを単純化するために、ヌル合体演算子(? 彼はNameプロパティにnullを割り当て、次に??を使用します。 フォールバック値を提供します:

var name = person.Name ?? "Gerald";

ジェラルドは、この演算子を使う前は、開発者は if 文を使っていたと説明します:

string name;
if (person.Name == null)
{
    name = "Gerald";
}
else
{
    name = person.Name;
}

??を使用することで、このロジックは1行に削減されます。person.Nameがnullの場合、"Gerald"が割り当てられます。 それ以外の場合、person.Nameはその値を保持します。 彼はプログラムを実行し、出力が正しいことを確認します。

例外をスローするための Null-Coalescing

次に、ジェラルドは、NULL合体演算子を使って例外を投げるという、別の使用例を探ります。 フォールバック値を提供する代わりに、nullに遭遇したときに例外を投げる方法を示しています:

var name = person.Name ?? throw new ArgumentNullException(nameof(person.Name), "Name cannot be null");

ジェラルドは、nullが許されるべきではないメソッドのパラメータやプロパティを扱うときに、これが特に役立つことを強調しています。 彼は、この機能は、プロジェクトの設定に応じて、C# 7または8で導入されたと説明しています。 ArgumentNullExceptionが発生し、意図しないnull参照を効果的に防ぎます。

ヌル合体複合代入 (??=)

ジェラルドは、デフォルト値を割り当てるためのさらに合理的な方法を提供するNULL合体複合代入(??=)演算子について説明します。 書く代わりに

if (person.Name == null)
{
    person.Name = "Gerald";
}

彼はこれを次のように単純化しています:

person.Name ??= "Gerald";

ジェラルドは、?=は左側のオペランドがNULLの場合にのみ指定された値を代入すると説明しています。 person.Nameにすでに値がある場合、それは変更されません。 この演算子は、フィールドを初期化したり、変数がNULLのままにならないようにしたりするのに特に便利です。

Null条件演算子との結合

最後のセクションでは、ジェラルドがNULL合体演算子とNULL条件演算子(?) null条件演算子は、NullReferenceExceptionを引き起こすことなくプロパティに安全にアクセスすることを可能にします。 例を挙げてみましょう:

var length = person?.Name?.Length ?? 0;

Geraldは、Nameがnullの場合、結果は例外を投げる代わりに0にデフォルトされることを説明します。 この組み合わせは、NULL可能な参照型や複雑なオブジェクト階層を扱うときに便利です。

結論

ビデオを通して、Gerald Versluisは、NULL合体演算子(??)とNULL合体複合代入(??=)の威力を効果的に説明しています。 これらの演算子が従来のヌルチェックをどのように置き換え、コードをより簡潔で読みやすいものにするかを示している。 これらの機能を活用することで、開発者はよりクリーンで効率的なC#アプリケーションを書くことができます。

これらの概念を実際に見てみたい方は、Gerald Versluisによる"Understanding C# Null Coalescing Operator (????) "のビデオをご覧ください。 と?)

Earn More by Sharing What You Love

Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Let's Stay in Touch!

Join our newsletter, you’ll get exclusive access on article updates. We value your privacy

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

OR
bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。