亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解如何在C#中處理空值

 更新時(shí)間:2023年07月31日 10:46:59   作者:Joydip?Kanjilal  
在任何編程語(yǔ)言中開(kāi)發(fā)應(yīng)用程序時(shí),經(jīng)常會(huì)遇到空異常或空引用異常,那么下面讓我們探討一下在C#中處理空值的各種方法吧,需要的可以收藏下

在任何編程語(yǔ)言中開(kāi)發(fā)應(yīng)用程序時(shí),經(jīng)常會(huì)遇到空異常或空引用異常。空指針或空引用是指不引用有效的內(nèi)存位置或?qū)ο蟮闹羔?。這是一個(gè)困擾程序員已經(jīng)很久的問(wèn)題,自從程序員開(kāi)始編寫(xiě)程序以來(lái)??罩凳且粋€(gè)特殊的值,表示沒(méi)有有效值可用。當(dāng)將空值賦給對(duì)象時(shí),它會(huì)將對(duì)象中的字段或變量的值重置為無(wú)值,即空值。所以必須在應(yīng)用程序的代碼中處理空值,以避免空引用異常和運(yùn)行時(shí)應(yīng)用程序的意外行為。那讓我們探討一下在C#中處理空值的各種方法。要使用下面提供的代碼示例,首先應(yīng)該在系統(tǒng)中安裝Visual Studio 2022。

在Visual Studio中創(chuàng)建一個(gè)控制臺(tái)應(yīng)用程序項(xiàng)目

首先,讓我們?cè)赩isual Studio中創(chuàng)建一個(gè).NET Core控制臺(tái)應(yīng)用程序項(xiàng)目。如果系統(tǒng)已安裝Visual Studio 2022,請(qǐng)按照以下步驟在Visual Studio中創(chuàng)建一個(gè)新的.NET Core控制臺(tái)應(yīng)用程序項(xiàng)目:

  • 啟動(dòng)Visual Studio IDE。
  • 點(diǎn)擊“創(chuàng)建新項(xiàng)目”。
  • 在“創(chuàng)建新項(xiàng)目”窗口中,從顯示的模板列表中選擇“控制臺(tái)應(yīng)用程序 (.NET Core)”。
  • 點(diǎn)擊“下一步”。
  • 在“配置新項(xiàng)目”窗口中,指定新項(xiàng)目的名稱和位置。
  • 點(diǎn)擊“下一步”。
  • 在接下來(lái)顯示的“附加信息”窗口中,選擇“.NET 7.0 (標(biāo)準(zhǔn)支持期)”作為您要使用的框架版本。
  • 點(diǎn)擊“創(chuàng)建”。

我們將使用這個(gè).NET 7控制臺(tái)應(yīng)用程序項(xiàng)目來(lái)處理接下來(lái)文章中的空值。我們將探討在C#中處理空值的五種方法??梢愿鶕?jù)對(duì)應(yīng)的應(yīng)用程序的需求選擇使用哪種方法。

C#中的空條件運(yùn)算符(?.)

當(dāng)對(duì)象不為null時(shí),您可以使用空條件運(yùn)算符(?.)訪問(wèn)其成員(數(shù)據(jù)成員和方法)。如果對(duì)象為null,空條件運(yùn)算符將返回null,但在訪問(wèn)對(duì)象的成員時(shí)不會(huì)引發(fā)運(yùn)行時(shí)異常??紤]以下類的示例:

public class Author
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; } 
    public string Address { get; set; }
?}

現(xiàn)在編寫(xiě)以下代碼來(lái)創(chuàng)建一個(gè)Author對(duì)象,為FirstName和LastName屬性賦值,并獲取Address屬性的長(zhǎng)度。請(qǐng)注意,我們沒(méi)有為Address屬性賦值,因此它被設(shè)置為null。

Author author = new Author();
author.FirstName = "Joydip";
author.LastName = "Kanjilal";
int length = author.Address.Length;

當(dāng)執(zhí)行上述代碼片段時(shí),將會(huì)遇到一個(gè)運(yùn)行時(shí)異常,如下圖所示。

圖一:空引用異常

以下代碼示例展示了如何在C#中使用空條件運(yùn)算符來(lái)避免運(yùn)行時(shí)異常。

Author author = new Author();
author.FirstName = "Joydip";
author.LastName = "Kanjilal";
author.Address = null;
int? length = author.Address?.Length;

C#中的空合并賦值操作符(??=)

當(dāng)左操作數(shù)的值為null時(shí),空合并賦值運(yùn)算符將右操作數(shù)的值賦給左操作數(shù)。以下是一個(gè)在C#中使用該運(yùn)算符的示例:

Author author = new Author();
author.FirstName = "Joydip";
author.LastName = "Kanjilal";
author.Address = null;
author.Address ??= "Default";
Console.WriteLine(author.Address);

C#中的空值忽略運(yùn)算符(!.)

空值忽略或空值抑制運(yùn)算符(!)允許在表達(dá)式中抑制所有警告。只有在確信屬性或?qū)ο蟮闹挡粫?huì)為null,并且希望抑制知道是錯(cuò)誤的警告時(shí),才應(yīng)使用此運(yùn)算符。以下代碼片段演示了如何使用空值忽略運(yùn)算符:

Author author = new Author();
author.FirstName = "Joydip";
author.LastName = "Kanjilal";
author.Address = null!;
int length = author.Address.Length;
Console.WriteLine(length);

C#中的條件運(yùn)算符 (?:)

可以使用條件運(yùn)算符 (?:) 來(lái)評(píng)估包含其中一個(gè)操作數(shù)為null值的表達(dá)式。條件運(yùn)算符也被稱為三元條件運(yùn)算符,因?yàn)槭褂迷撨\(yùn)算符的語(yǔ)句有三個(gè)部分:條件(布爾表達(dá)式)、結(jié)果表達(dá)式和備選表達(dá)式。如果條件為真,則結(jié)果表達(dá)式(在冒號(hào)左側(cè))將被評(píng)估/返回。如果條件為假,則備選表達(dá)式(在冒號(hào)右側(cè))將被評(píng)估/返回。以下是一個(gè)示例,演示了如何在表達(dá)式中使用條件運(yùn)算符來(lái)處理null值:

Author author = new Author();
author.FirstName = "Joydip";
author.LastName = "Kanjilal";
author.Address = null!;
string result = (author.Address != null) ? author.Address : "Unknown";
Console.WriteLine(result);

C#中的is運(yùn)算符(類型判斷運(yùn)算符)

還可以使用關(guān)鍵字is來(lái)檢查一個(gè)值是否為null。這個(gè)關(guān)鍵字(同時(shí)也是一個(gè)運(yùn)算符)可以用于比較常量值甚至null值。以下代碼片段展示了如何在C#中使用這個(gè)運(yùn)算符來(lái)處理null值。

Author author = new Author();
author.FirstName = "Joydip";
author.LastName = "Kanjilal";
author.Address = null!;
if(author.Address != null)
{
    Console.WriteLine(author.Address);
}
else
{
    Console.WriteLine("The value of the Address property is null");
}

除了上面提到的五種技術(shù)之外,還可以使用C#中的其他運(yùn)算符來(lái)檢查null值。使用這里展示的運(yùn)算符來(lái)處理null值的主要目標(biāo)是避免編寫(xiě)處理異常的代碼。使用這些技術(shù),可以保持代碼的整潔和可管理性。

到此這篇關(guān)于詳解如何在C#中處理空值的文章就介紹到這了,更多相關(guān)C#處理空值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C# 向二進(jìn)制文件進(jìn)行讀寫(xiě)的操作方法

    C# 向二進(jìn)制文件進(jìn)行讀寫(xiě)的操作方法

    該例子使用 BinaryStream 和 BinaryWriter 對(duì)二進(jìn)制文件進(jìn)行讀寫(xiě)操作先上代碼再根據(jù)我理解的所分享給各位朋友
    2013-04-04
  • 在.NET中讀取嵌入和使用資源文件的方法

    在.NET中讀取嵌入和使用資源文件的方法

    本文分別介紹了使用GetManifestResourceStream讀取嵌入資源,和使用. resx資源文件嵌入資源,希望對(duì)大家有所幫助。
    2016-05-05
  • C#?TreeView控件使用技巧匯總

    C#?TreeView控件使用技巧匯總

    這篇文章主要介紹了C#?TreeView控件使用技巧匯總,TreeView控件在窗體應(yīng)用里面使用也是頻率比較高的,我們?cè)谑褂肨reeView一般是對(duì)資源的分層展示,類似數(shù)據(jù)結(jié)構(gòu)里面樹(shù)的凹入表示法
    2022-08-08
  • 詳解c# 協(xié)變和逆變

    詳解c# 協(xié)變和逆變

    這篇文章主要介紹了c# 協(xié)變和逆變的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下
    2020-11-11
  • 最新評(píng)論