欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在C#語言里對NULL的技術(shù)處理小結(jié)

 更新時間:2024年05月16日 10:52:59   作者:0仰望星空007  
在 C# 中處理 null 值是編寫可靠且可靠的代碼的一個重要方面,在本文中,我將討論一些在 C# 中處理 null 值的最常用技術(shù),感興趣的朋友跟隨小編一起看看吧

前言

在 C# 中,null 是一個特殊存在,表示缺少值。Null 可以分配給引用類型和可為 null 的值類型,但不能分配給不可為空的值類型。在 C# 中處理 null 值是編寫可靠且可靠的代碼的一個重要方面。在本文中,我將討論一些在 C# 中處理 null 值的最常用技術(shù)。

1 、NULL合并操作符(??)

null合并操作符(??)是一個簡寫操作符,用于在左側(cè)對象不為null時返回左側(cè)值,在左側(cè)對象為null時返回右側(cè)值。當您在判斷當前對象值是否null值并且賦值新對象需要簡寫時,此操作符非常有用。

string name = null;
string result = name ?? "Unknown";
Console.WriteLine(result); // Output: Unknown
在上面的示例中,由于name的值為null,因此使用null合并運算符將“Unknown”的值賦給result。

2. 條件運算符 (???

條件運算符(?:)是一個三元運算符,用于代替if-else的簡寫,如果條件為真則返回一個值,如果條件為假則返回另一個值。當需要根據(jù)條件提供默認值時,此操作符很有用。

string name = null;
string result = (name != null) ? name : "Unknown";
Console.WriteLine(result); // Output: Unknown
在上面的例子中,由于name的值為null,因此使用條件運算符將“Unknown”的值賦給result。

3. 空條件運算符(?.)

如果對象不為空,則使用空條件操作符(?.)訪問對象的成員,否則返回空。當您需要訪問可能為空的對象的屬性或方法時,此操作符非常有用。

string name = null;
int length = name?.Length??0;
Console.WriteLine(length); // Output: 0

在上面的例子中,因為name的值是空的,所以length的值也是空的。

但你也可以利用 合并操作運算符(??) 進行進階的寫法,代碼如下:

string name = null;
int length = name?.Length??0;
Console.WriteLine(length); // Output: 0

可以看到上面的代碼例子里,length可以不用空的值類型獲取name的長度,可以在你的業(yè)務(wù)邏輯里認為null的字符串長度也可以是0長度,減少后期值類型的復(fù)雜判斷。

4. 空合并賦值操作符 (??=)

空合并賦值操作符(??=)用于在左側(cè)對象為空時將右側(cè)對象賦值給左側(cè)。意思就是如果變量對象為空,可以給它賦值一個默認對象值,在理解上它可以簡化代碼并使其更加簡潔。

string name = null;
name ??= "Unknown";
Console.WriteLine(name); // Output: Unknown

在上面的示例中,由于name的值為空,因此使用空合并賦值操作符將“Unknown”的值賦給name。

5. 寬容運算符 (!.)

允許為空的操作符(!.)用于告訴編譯器值不為空,即使編譯器無法確定該值不為空。當您知道一個值不會為空,但編譯器無法確定它不會為空時,此操作符很有用。

string name = null!;
int length = name.Length;
Console.WriteLine(length); // Output: System.NullReferenceException

在上面的例子中,寬容操作符用于告訴編譯器name的值不可為空。但是,由于name的值實際上是空的,所以系統(tǒng)在運行時拋出NullReferenceException。

6. 使用 is 運算符

在C#編程語言中,“is”操作符是一個關(guān)鍵字,用于檢查變量是否與特定類型兼容。隨著C#7.0中常量模式的引入,這個運算符獲得了額外的功能。具體來說,現(xiàn)在可以使用“is”操作符將值與常量(如null)進行比較。

if (name is null)
{
   // code to execute
}
Console.WriteLine(name);

使用“is”運算符的擴展功能使開發(fā)人員能夠在c#應(yīng)用程序中執(zhí)行類型檢查和比較時編寫更簡潔、更可讀的代碼。

或者,您也可以使用操作符檢查:==null

object obj = null;
if (obj == null)
{
    // do something if obj is null
}
else
{
    // do something else if obj is not null
}

這兩種方法都可以,但是使用操作符進行檢查可能更具可讀性和表現(xiàn)力,特別是當與其他類型檢查 is null 結(jié)合使用時。

7. ArgumentNullException 參數(shù)空異常

最后,ArgumentNullException類用于處理傳遞給方法或構(gòu)造函數(shù)的空參數(shù)。當您需要確保傳遞給方法或構(gòu)造函數(shù)的參數(shù)不為空時,該類非常有用。

public void DoSomething(string name)
{
    if (name == null)
    {
        throw new ArgumentNullException(nameof(name));
    }
    Console.WriteLine($"Hello, {name}!");
}
// Usage
DoSomething(null); // Output: System.ArgumentNullException: Value cannot be null. (Parameter 'name')

在上面的例子中,ArgumentNullException類用于在name的值為空時拋出異常。

結(jié)論

在軟件開發(fā)中,處理null值是非常重要的事情。我們討論了在C#中處理null值的7種技術(shù)。此外,在C#中處理null值對于避免空引用異常和其他意外行為也很重要。

到此這篇關(guān)于在C#語言里對NULL的技術(shù)處理的文章就介紹到這了,更多相關(guān)C# NULL技術(shù)處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • c# 三種方法調(diào)用WebService接口

    c# 三種方法調(diào)用WebService接口

    這篇文章主要介紹了c# 三種方法調(diào)用WebService接口的相關(guān)資料,文中示例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • C#語言基礎(chǔ)——結(jié)構(gòu)體和枚舉類型全面解析

    C#語言基礎(chǔ)——結(jié)構(gòu)體和枚舉類型全面解析

    下面小編就為大家?guī)硪黄狢#語言基礎(chǔ)——結(jié)構(gòu)體和枚舉類型全面解析。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • C#判斷數(shù)據(jù)類型的簡單示例代碼

    C#判斷數(shù)據(jù)類型的簡單示例代碼

    本篇文章要是對C#中判斷數(shù)據(jù)類型的簡單示例代碼進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • C#實現(xiàn)收發(fā)郵件功能

    C#實現(xiàn)收發(fā)郵件功能

    這篇文章介紹了C#實現(xiàn)收發(fā)郵件功能的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • C# List的賦值問題的解決

    C# List的賦值問題的解決

    本文主要介紹了C# List的賦值問題的解決,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • C#創(chuàng)建WCF服務(wù)控制臺應(yīng)用程序詳解

    C#創(chuàng)建WCF服務(wù)控制臺應(yīng)用程序詳解

    這篇文章主要為大家詳細介紹了C#創(chuàng)建WCF服務(wù)控制臺應(yīng)用程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • C#/VB.NET 給Excel添加、刪除數(shù)字簽名的方法

    C#/VB.NET 給Excel添加、刪除數(shù)字簽名的方法

    這篇文章主要介紹了C#/VB.NET 給Excel添加、刪除數(shù)字簽名的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • C# 獲取XML文件內(nèi)容的多種方式總結(jié)

    C# 獲取XML文件內(nèi)容的多種方式總結(jié)

    這篇文章主要介紹了C# 獲取XML文件內(nèi)容的多種方式總結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • C#編寫游戲客戶端的實現(xiàn)代碼

    C#編寫游戲客戶端的實現(xiàn)代碼

    這篇文章主要介紹了C#編寫游戲客戶端的實現(xiàn)代碼,連接客戶端原理流程圖,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • C#靜態(tài)方法的使用

    C#靜態(tài)方法的使用

    這篇文章介紹了C#靜態(tài)方法的使用,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04

最新評論