.NET 幫助

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

介紹

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

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

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

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

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

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

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

  5. 運行程式碼。

C#的空合併運算符

C# 中的空值由空合併運算子 (??) 預設處理,這是一種用於處理可空類型或可能導致空值的表達式時,使用合併概念來管理此類值的方法。

語法

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

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

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

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

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

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

好處

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

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

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

    在處理可空類型或需要預設值的情況時,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# 空合併運算符(開發人員的工作方式):圖1 - 安裝 IronPDF

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

C# Null 合併運算(它如何對開發者運作):圖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
$vbLabelText   $csharpLabel

請記住,IronPDF(或任何程式庫)不提供管理空值條件運算子的特殊功能或方法; 相反,使用空合併運算子是基於一般 C# 語言特性和概念來處理空條件運算子的。 若要了解有關 IronPDF 的功能和能力的更多資訊,請參閱IronPDF 示範

輸出:

C# Null Coalescing(對開發人員的作用):圖 3 - 前述範例輸出

結論

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

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

Chipego
奇佩戈·卡林达
軟體工程師
Chipego 擁有天生的傾聽技能,這幫助他理解客戶問題,並提供智能解決方案。他在獲得信息技術理學學士學位後,于 2023 年加入 Iron Software 團隊。IronPDF 和 IronOCR 是 Chipego 專注的兩個產品,但隨著他每天找到新的方法來支持客戶,他對所有產品的了解也在不斷增長。他喜歡在 Iron Software 的協作生活,公司內的團隊成員從各自不同的經歷中共同努力,創造出有效的創新解決方案。當 Chipego 離開辦公桌時,他常常享受讀好書或踢足球的樂趣。
< 上一頁
Datatables .NET(開發人員如何運作)
下一個 >
Hangfire .NET Core(對開發人員的運作方式)