.NET ヘルプ

C#のNull合体演算子(開発者向けの仕組み)

イントロダクション

null合体演算子??は右側のオペランドを評価し、それが非null参照の場合はその結果を返します。 それ以外の場合は、左側のオペランドの値を返します。 左側のオペランドが非NULL可能な値型に評価される場合、NULL条件演算子(??)は右側のオペランドを評価しません。 null 合体代入演算子 ??= は、左オペランドがヌル許容型の値に評価される場合にのみ、右オペランドの値を左オペランドに代入します。 左側のオペランドが非nullの値に評価される場合、null合体代入演算子 (??=) は右側のオペランドを評価しません。 ヌル合体演算子は三項演算子に似ています。

確かに、C#において、null合体演算子(??)は二項演算子です。 二つのオペランドに作用する演算子は二項演算子と呼ばれます。 ヌル合体演算子を使用する場合、2つのオペランドが必要です。演算子は各オペランドを評価して結果を決定します。 以下では、C#におけるnull合体演算子およびnull条件演算子の使用方法を見ていきます。

C# における Null 合体演算子の使い方

  1. 新しいC#プロジェクトを作成してください。

  2. 適切なバージョンがインストールされていることを確認してください。

  3. ヌル合体演算子??を使用します。

  4. 要件に基づいて値またはオブジェクト参照タイプを確認します。

  5. コードを実行してください。

C#におけるNull合体演算子

C#におけるnull値は、null合体演算子 (??) によってデフォルトで処理されます。これは、nullになりうる型や式を扱う際に、そうした値を管理するために使用される合体の概念です。

構文

以下はnull合体演算子の構文です:

result = expression1 ?? expression2;
result = expression1 ?? expression2;
result = If(expression1, expression2)
$vbLabelText   $csharpLabel

式1: この式は null 値を生成する可能性があります。

この式2: 式1がnullの場合、既定値または代替式として使用されます。

結果: 合体演算の結果を保持する変数。

null合体演算子は、nullableタイプを使う際にデフォルト値を割り当てる簡潔な方法を提供し、コードの簡素化とnullデータの効率的な処理をその主な目的としています。

利点

  • 簡潔さ:複雑な条件文や三項演算子を必要とせず、nullチェックを処理します。
  • コードの可読性は、null が返された場合にデフォルト値が提供されることを明示することで向上します。

    ヌル合体演算子を使用する前に、比較する式の型が一致しているか互換性があることを確認することが重要です。

    有用ではありますが、オペレーターを過剰に使用するとコードの理解が難しくなる場合があります。 コードの明確化に役立つ場合、慎重に使用してください。

    nullable 型やデフォルト値を必要とするシナリオで作業する際、C# における null 合体演算子 (??) は、null 値を管理するための効果的なツールであり、より簡潔で理解しやすいコードを書くのに役立つかもしれません。

    null 合体演算子 ?? 以下のタイプ関連の特性を持っています:

結果型推論

以下のコードに示すように、NULL合体演算子の結果の型は、式1と式2が同じ型を持つ場合にこれらのオペランドと同じです。

int? Value = null;
int result = Value ?? 10;
int? Value = null;
int result = Value ?? 10;
Dim Value? As Integer = Nothing
Dim result As Integer = If(Value, 10)
$vbLabelText   $csharpLabel

型の互換性

アウトカムタイプは、式1と式2が異なるタイプを持つが一方が他方に暗黙的に変換できる場合に、両方の式が暗黙的に変換できるタイプです。

double? value= null;
int result = (int)(value ?? 5.5);
double? value= null;
int result = (int)(value ?? 5.5);
Imports System

Dim value? As Double= Nothing
Dim result As Integer = CInt(Math.Truncate(If(value, 5.5)))
$vbLabelText   $csharpLabel

タイプ プロモーション

式1と式2の型が暗黙的に変換できない場合、結果の型はC#の型昇格規則に従って選択されます。

int? value= null;
long result = value ?? 100L;
int? value= null;
long result = value ?? 100L;
Dim value? As Integer= Nothing
Dim result As Long = If(value, 100L)
$vbLabelText   $csharpLabel

したがって、オペランドに関係する型とC#の型変換ルールが、null合体演算子 (??) の結果を保持する変数または式の型を決定します。 null 合体演算子を使用して型と値を正しく処理するためには、互換性と潜在的な型変換を考慮することが重要です。

IronPDFにおけるコアレッシング

IronPDF をインストール

IronPDFライブラリをインストールするには、以下の同じコードをパッケージマネージャに入力してください:

Install-Package IronPdf

C# Null Coalescing(開発者向けの動作方法):図1 - IronPDFをインストール

または、NuGetパッケージマネージャーを使用してパッケージ「IronPDF」を検索することもできます。 以下のリストにあるIronPDFに関連するすべてのNuGetパッケージから必要なパッケージを選んでダウンロードしてください。

C# Null Coalescing(開発者向けの仕組み):図2 - NuGet パッケージ マネージャー

ヌル合体を使用してPDFを作成

C#ライブラリであるIronPDFは、PDFドキュメントを作成し、操作するために使用されます。 ライブラリは、PDFの操作に関するいくつかの機能を提供しています。例えば、フォーマット、テキスト処理、画像管理などが含まれます。 「Null-coalescing」は、IronPDFにのみ特有のメソッドでも機能でもありません。 むしろ、それはライブラリ固有の操作というよりは、言語の機能です。

しかし、IronPDFや他のライブラリをC#コードで使用している場合、C#言語が提供するnull合体演算子(??)を利用することができます。

IronPDFオブジェクトを使用している間、nullの状況を処理したりデフォルト値を提供するためには、nullable value typesやnullを返す可能性のあるプロパティに対してnull合体演算子を使用することができます。

以下の例は、IronPDFでnull合体演算子を使用する方法を示しています:

using IronPdf;
using IronPdf.Pages;
namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string [] args)
        {
            int? x = null;
            var outputstr = $@"square of <b>{x}</b> is <b>{ Math.Sqrt(x??30)}</b>";
            var pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr);
            pdfcreate.SaveAs("demo.pdf");
            Console.ReadKey();
        }
    }
}
using IronPdf;
using IronPdf.Pages;
namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string [] args)
        {
            int? x = null;
            var outputstr = $@"square of <b>{x}</b> is <b>{ Math.Sqrt(x??30)}</b>";
            var pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr);
            pdfcreate.SaveAs("demo.pdf");
            Console.ReadKey();
        }
    }
}
Imports IronPdf
Imports IronPdf.Pages
Namespace ConsoleApp1
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Dim x? As Integer = Nothing
			Dim outputstr = $"square of <b>{x}</b> is <b>{Math.Sqrt(If(x, 30))}</b>"
			Dim pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr)
			pdfcreate.SaveAs("demo.pdf")
			Console.ReadKey()
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

IronPDF(または任意のライブラリ)は、条件演算子のnull値を管理するための特別な機能やメソッドを提供していないことを忘れないでください。 むしろ、null 合体演算子の使用は、null 条件演算子を扱うための一般的なC#言語の機能と概念に基づいています。 IronPDFの機能と能力について詳しく知るには、IronPDF Demosをご覧ください。

出力:

C# Null コアレッシング (開発者向けの動作原理): 図 3 - 前の例の出力

結論

要約すると、C#のヌル合体演算子(??)は、式や代入におけるヌル値の処理をより簡単かつ効率的にする便利な機能です。 この演算子は、値がnullである可能性があるシナリオを処理するための明確な方法を開発者に提供することで、コードを簡素化します。 これにより、開発者はデフォルト値を指定したり、代替ロジックを容易に実行することができます。 その適応性により、コードがより効率的かつ効果的になり、nullテストが簡素化され、可読性が向上します。

IronPDFは、永続ライセンス、アップグレードオプション、1年間のソフトウェア保守、30日間の返金保証を提供しており、これらはすべて$749 Liteパッケージに含まれています。 ユーザーは、透かし入りの試用期間中に実際のアプリケーション環境で製品を評価するための30日間を取得します。 提供されたIronPDF ライセンスをクリックして、IronPDF の料金、ライセンス、試用版について詳しく学びましょう。 Iron Software製品についてもっと知るには、Iron Softwareのウェブサイトをご覧ください。

チペゴ
ソフトウェアエンジニア
チペゴは優れた傾聴能力を持ち、それが顧客の問題を理解し、賢明な解決策を提供する助けとなっています。彼は情報技術の学士号を取得後、2023年にIron Softwareチームに加わりました。現在、彼はIronPDFとIronOCRの2つの製品に注力していますが、顧客をサポートする新しい方法を見つけるにつれて、他の製品に関する知識も日々成長しています。Iron Softwareでの協力的な生活を楽しんでおり、さまざまな経験を持つチームメンバーが集まり、効果的で革新的な解決策を提供することに貢献しています。チペゴがデスクを離れているときは、良い本を楽しんだり、サッカーをしていることが多いです。
< 以前
Datatables .NET(開発者向けの動作方法)
次へ >
Hangfire .NET Core(開発者向けの動作方法)