フッターコンテンツにスキップ
.NETヘルプ

C# Null Coalescing (開発者向けの仕組み)

ヌル合体演算子??は右辺オペランドを評価し、左辺オペランドがヌル参照の場合、その結果を返します。 そうでない場合には、左辺オペランドの値を返します。 左辺オペランドが非ヌル可能な値タイプに評価された場合、ヌル合体演算子(??)は右辺オペランドを評価しません。 代入演算子??=はヌル合体の代入であり、左オペランドがヌル可能な型の値に評価される場合のみ、右オペランドの値を左オペランドに代入します。 左側のオペランドが非ヌル値に評価される場合、ヌル合体代入演算子(??=)は右辺オペランドを評価しません。 ヌル合体演算子は、三項演算子に似ています。

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

C#ヌル合体値タイプの使い方

  1. 新しいC#プロジェクトを作成します。
  2. 適切なバージョンがインストールされていることを確認してください。
  3. ヌル合体演算子??を使用します。
  4. 要件に基づいて、値またはオブジェクト参照タイプを確認します。
  5. コードを実行します。

C#でのヌル合体

C#のヌル値は、ヌル合体演算子(??)によってデフォルトで管理されます。この演算子は、ヌル可能な型やヌルになる可能性のある式を扱う際に使用される合体の概念を使って、これらの値を管理します。

構文

ヌル合体演算子の構文は次のとおりです:

result = expression1 ?? expression2;
result = expression1 ?? expression2;
result = If(expression1, expression2)
$vbLabelText   $csharpLabel
  • expression1: この式からヌル値が生成される可能性があります。
  • expression2: expression1がヌルの場合、使用されるデフォルトの値または代替の式です。
  • result: 合体操作の結果を保持する変数。

ヌル合体演算子は、ヌルデータを効率的に処理し、コードを合理化するために使用されるデフォルト値を割り当てる簡潔な方法を提供します。

利点

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

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

便利ですが、演算子を過度に使用するとコードの理解が難しくなることがあります。 コードの明瞭さが向上する場合に適度に使用してください。

ヌル可能な型やデフォルト値を必要とするシナリオを扱う際に、C#のヌル合体演算子(??)はヌル値を管理するための効果的なツールであり、コードをより簡潔で理解しやすいものにするのに役立ちます。

ヌル合体演算子?? 次のタイプ関連の特性を持っています:

結果タイプ推論

ヌル合体演算子の結果タイプは、以下のコードに示すように、式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#のタイプ変換ルールによって決まります。 ヌル合体演算子を使用しながらタイプと値を正しく処理するために、互換性と可能なタイプ変換を考慮することが重要です。

IronPDFでの合体

IronPDFをインストールする

IronPDFライブラリをインストールするには、次のコードをパッケージマネージャーに入力します:

Install-Package IronPdf

C# Null Coalescing (開発者向け説明): 図1 - IronPDFをインストール

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

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

Create PDF with Null Coalescing

A C# library called IronPDF is used to create and work with PDF documents. The library offers features for working with PDFs, such as formatting, text processing, and image management. "Null-coalescing" is not a method or feature that is exclusive to IronPDF; rather, it is a language feature rather than a library-specific operation.

例えば、IronPDFオブジェクトを操作しているときに、ヌルになる可能性のある値タイプやプロパティがヌルを返す場合に、ヌル合体演算子を使用してヌルの状況を処理したり、デフォルト値を提供したりできます。

IronPDFオブジェクトやNULLを返す可能性のあるnullable値型やプロパティを扱う際にNULLの状況を処理したりデフォルト値を提供したりするために、NULL結合演算子を使用できます。

次の例は、IronPDFでヌル合体演算子の使い方を示しています。

using IronPdf;
using IronPdf.Pages;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int? x = null;

            // Use the null-coalescing operator to provide a default value if x is null
            var outputstr = $@"square of <b>{x}</b> is <b>{Math.Sqrt(x ?? 30)}</b>";

            // Render the HTML string as a PDF using IronPDF
            var pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr);

            // Save the generated PDF to the file system
            pdfcreate.SaveAs("demo.pdf");

            // Wait for a key press to prevent the console from closing immediately
            Console.ReadKey();
        }
    }
}
using IronPdf;
using IronPdf.Pages;

namespace ConsoleApp1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int? x = null;

            // Use the null-coalescing operator to provide a default value if x is null
            var outputstr = $@"square of <b>{x}</b> is <b>{Math.Sqrt(x ?? 30)}</b>";

            // Render the HTML string as a PDF using IronPDF
            var pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr);

            // Save the generated PDF to the file system
            pdfcreate.SaveAs("demo.pdf");

            // Wait for a key press to prevent the console from closing immediately
            Console.ReadKey();
        }
    }
}
Imports IronPdf
Imports IronPdf.Pages

Namespace ConsoleApp1
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Dim x? As Integer = Nothing

			' Use the null-coalescing operator to provide a default value if x is null
			Dim outputstr = $"square of <b>{x}</b> is <b>{Math.Sqrt(If(x, 30))}</b>"

			' Render the HTML string as a PDF using IronPDF
			Dim pdfcreate = ChromePdfRenderer.StaticRenderHtmlAsPdf(outputstr)

			' Save the generated PDF to the file system
			pdfcreate.SaveAs("demo.pdf")

			' Wait for a key press to prevent the console from closing immediately
			Console.ReadKey()
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

IronPDFにはNULL値条件演算子を管理する特別な機能やメソッドはありません。 nullptr合体演算子の使用はC#言語に基づいています。 IronPDFの機能と能力について詳しく知りたい場合は、IronPDFデモをご覧ください。

出力:

C# Null Coalescing (開発者にとっての仕組み): 図3 - 前例の出力

結論

この演算子は、開発者が値がヌルである可能性があるシナリオを処理するための明確な方法を提供することで、コードを簡略化します。 これにより、開発者はデフォルト値を指定したり、代わりのロジックを容易に実行することができます。 その適応性により、ヌルのテストを簡略化し、読みやすさを向上させ、コードをより効率的かつ効果的にします。 IronPDFは、永続ライセンス、アップグレードオプション、1年間のソフトウェアメンテナンス、30日間の返金保証を提供し、$799 Liteパッケージに含まれています。

IronPDFは、永久ライセンス、アップグレードオプション、1年間のソフトウェアメンテナンス、30日間の返金保証を提供しており、すべてが$799ライトパッケージに含まれています。 ユーザーは、透かしの入ったトライアル期間中に、実際のアプリケーション環境で製品を評価するための30日間を得ます。 Iron Software製品について詳しく知るには、Iron Softwareのウェブサイトをご覧ください。 Iron Software製品の詳細については、Ironソフトウェアのウェブサイトをご覧ください。

よくある質問

null 合体演算子は C# のコードの可読性をどのように向上させますか?

C# の null 合体演算子 `??` は、null チェックを単純化し、nullable 型に遭遇した際にデフォルト値を割り当てる簡潔な方法を提供することで、コードの可読性を向上させます。

C# の null 合体代入演算子の目的は何ですか?

null 合体代入演算子 `??=` は、左オペランドが null の場合に限り右オペランドの値を左オペランドに割り当てることで、nullable 型を扱う際にコードを簡素化します。

C# PDF アプリケーションで null 合体演算子を使用する例を提供できますか?

IronPDF を使用する C# PDF アプリケーションでは、ユーザーがファイル名を指定しない場合にデフォルトのファイル名を割り当てるために null 合体演算子を使用するかもしれません: string pdfName = userInputFileName ?? "default.pdf";

null 合体演算子を使用する際の一般的な落とし穴は何ですか?

一般的な落とし穴は、オペランド間の型の互換性を保証しないことです。これにより型変換エラーが発生する可能性があります。null 合体演算子を使用する際には、両方のオペランドが互換性のある型であることを確認することが極めて重要です。

null 合体演算子は C# における型の互換性とどのように関連していますか?

null 合体演算子は、双方のオペランドが互換性のある型であることを要求します。そうでない場合、C# は型推進の規則を適用して結果の型を決定します。これが慎重に管理されないと予期しない動作を引き起こす可能性があります。

nullable 型を扱う開発者にとって、null 合体演算子はなぜ有益ですか?

null 合体演算子は、nullable 型を効率的に処理し、デフォルト値を提供することで、冗長な条件ロジックの必要性を減少させるため、有益です。

開発者は、C# コードライブラリで null 合体演算子をどのように使用して null 値を管理することができますか?

開発者は、特定の値が null である可能性がある時にデフォルト値を割り当てて、null 参照例外が発生せずにアプリケーションがスムーズに動作し続けることを確保するために、C# コードライブラリで null 合体演算子を使用できます。

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(CTO)

Jacob Mellorは、Iron Softwareの最高技術責任者であり、C# PDF技術の開拓者としてその先進的な役割を担っています。Iron Softwareのコアコードベースのオリジナルデベロッパーである彼は、創業時から製品のアーキテクチャを形作り、CEOのCameron Rimingtonと協力してNASA、Tesla、全世界の政府機関を含む50人以上の会社に成長させました。

Jacobは、1998年から2001年にかけてマンチェスター大学で土木工学の第一級優等学士号(BEng)を取得しました。1999年にロンドンで最初のソフトウェアビジネスを立ち上げ、2005年には最初の.NETコンポーネントを作成し、Microsoftエコシステムにおける複雑な問題の解決を専門にしました。

彼の旗艦製品であるIronPDFとIronSuite .NETライブラリは、全世界で3000万以上のNuGetインストールを達成しており、彼の基本コードが世界中で使用されている開発者ツールを支えています。商業的な経験を25年間積み、コードを書くことを41年間続けるJacobは、企業向けのC#、Java、およびPython PDF技術の革新を推進し続け、次世代の技術リーダーを指導しています。