.NET 幫助

C# 空合併運算子(開發者如何使用)

發佈 2024年1月14日
分享:

介紹

空合併運算符 ?? 會評估右側運算元,並在其為非 null 引用時返回其結果; 否則,將返回其左運算元的值。 如果左操作數計算為不可為 null 的值類型,則可為 null 的條件運算符(??)不評估右側的操作數。 空合併賦值運算符 ??= 僅在其左運算元評估為可空類型值時,將其右運算元的值賦給左運算元。 如果左側的操作數評估為非空值,則空合併賦值運算符(??=)不會評估其右側運算元。 空合併運算符類似於三元運算符。

確實,在C#中,null合併運算子(??)是一個二元運算子。 作用於兩個運算元的運算符稱為二元運算符。 使用空值合併運算符時,需要兩個操作數,並且運算符會對每個操作數進行評估以確定結果。 現在我們將在下面看到 C# 中空合併和空條件運算符的用法。

如何使用 C# Null 合併運算符價值類型

  1. 創建一個新的 C# 專案。

  2. 確保已安裝適當的版本。

  3. 使用空合併運算子 ??

  4. 根據需求檢查值或物件參考類型。

  5. 運行程式碼。

C#的空合併運算符

在 C# 中,空值由預設處理空合併運算子 (??)這是合併 (coalescing) 的概念,當處理可空類型或可能導致空值的表達式時,用於管理這些值。

語法

以下是空合併運算符的語法:

result = expression1 ?? expression2;
result = expression1 ?? expression2;
result = If(expression1, expression2)
VB   C#

expression1: 此表達式可能產生空值。

expression2:如果 expression1 為空,這將是要使用的預設值或替代運算式。

結果:保存合併運算結果的變數。

空合併運算子提供了一種精簡的方式,來為可空類型分配預設值,這是其在簡化程式碼和有效處理空值數據時的主要目標。

好處

  • 簡潔:處理空值檢查而不需要複雜的條件語句或三元運算符。
  • 通過明確說明如果返回空值將提供默認值,可以提高代碼的可讀性。

    在使用空合併運算符之前,確保被比較的表達式類型相符或相容是至關重要的。

    雖然有用,但過度使用該運算符可能會使代碼更難理解。 當它提升程式碼清晰度時,請謹慎使用。

    當處理可為 null 的類型或需要預設值的情況時,可以使用空合併運算子(??)在 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)
VB   C#

類型相容性

如果表達式 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)))
VB   C#

類型促銷

如果表達式 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)
VB   C#

因此,所涉及的操作數類型和 C# 類型轉換規則決定了持有空合操作符結果的變量或表達式的類型。(??). 為了確保在使用空合併運算符時正確處理類型和值,考慮相容性和可能的類型轉換至關重要。

在 IronPDF 中合併

安裝 IronPDF

若要安裝IronPDF庫,請在套件管理器中輸入以下相同的程式碼:

Install-Package IronPdf

C# Null 合併運算符(開發者使用方式):圖 1 - 安裝 IronPDF

或者,您可以使用 NuGet 套件管理器來搜尋套件 "IronPDF"。 您可以從與IronPDF相關的所有NuGet套件列表中選擇並下載必要的套件。

C# 空合併運算子(開發者如何使用): 圖 2 - NuGet 套件管理員

使用空合併運算符建立 PDF

名為 IronPDF 的 C# 庫用來創建和處理 PDF 文件。 該程式庫提供了一些用於處理 PDF 的功能,例如格式化、文字處理和圖片管理。 「Null合併」既不是IronPDF獨有的方法,也不是功能。 相反,這是一個語言特性,而不是特定於庫的操作。

但是,如果您在 C# 代碼中使用 IronPDF 或任何其他庫,您可以使用空合併運算符(??)C#語言提供的功能。

要處理空值情況或提供默認值,例如在使用IronPDF對象時,對於可為空的值類型或可能返回空值的屬性,可以使用空合併運算符。

以下範例顯示了如何在 IronPDF 中使用空合併運算子:

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
VB   C#

請記住 IronPDF(或任何資料庫)未提供用於管理空值的條件運算符的特殊功能或方法; 相反,使用空合併運算子是基於一般 C# 語言特性和概念來處理空條件運算子的。 要了解有關 IronPDF 的功能和能力的更多信息,請訪問IronPDF 範例展示.

輸出:

C# 空合併運算子(適用於開發人員的工作原理):圖 3 - 前述範例輸出

結論

總結來說,C# 的空合併運算子(??)是一個有用的功能,可以使表達式和賦值中的空值處理變得更簡單和更高效。 此運算符透過為開發人員提供一種明確的方法來處理值可能為 null 的情況,從而簡化了程式碼。 這使開發人員能夠輕鬆指定預設值或執行替代邏輯。 其適應性使代碼更加精簡和高效,簡化空測試並提高可讀性。

IronPDF 提供永久授權、升級選項、一年軟體維護,以及 30 天退款保證,全部包含在 $749 Lite 套裝中。 用戶在有浮水印的試用期內,可在真實應用環境中評估產品三十天。 點擊提供的IronPDF 授權了解更多有關 IronPDF 的價格、許可和試用版的資訊。 欲了解更多有關 Iron Software 產品的信息,請查看Iron Software 網站.

< 上一頁
Datatables .NET(開發人員如何運作)
下一個 >
Hangfire .NET Core(對開發人員的運作方式)