最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2023年07月31日 10:46:59   作者:Joydip?Kanjilal  
在任何編程語言中開發(fā)應(yīng)用程序時(shí),經(jīng)常會遇到空異?;蚩找卯惓#敲聪旅孀屛覀兲接懸幌略贑#中處理空值的各種方法吧,需要的可以收藏下

在任何編程語言中開發(fā)應(yīng)用程序時(shí),經(jīng)常會遇到空異常或空引用異常??罩羔樆蚩找檬侵覆灰糜行У膬?nèi)存位置或?qū)ο蟮闹羔槨_@是一個(gè)困擾程序員已經(jīng)很久的問題,自從程序員開始編寫程序以來。空值是一個(gè)特殊的值,表示沒有有效值可用。當(dāng)將空值賦給對象時(shí),它會將對象中的字段或變量的值重置為無值,即空值。所以必須在應(yīng)用程序的代碼中處理空值,以避免空引用異常和運(yùn)行時(shí)應(yīng)用程序的意外行為。那讓我們探討一下在C#中處理空值的各種方法。要使用下面提供的代碼示例,首先應(yīng)該在系統(tǒng)中安裝Visual Studio 2022。

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

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

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

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

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

當(dāng)對象不為null時(shí),您可以使用空條件運(yùn)算符(?.)訪問其成員(數(shù)據(jù)成員和方法)。如果對象為null,空條件運(yùn)算符將返回null,但在訪問對象的成員時(shí)不會引發(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)在編寫以下代碼來創(chuàng)建一個(gè)Author對象,為FirstName和LastName屬性賦值,并獲取Address屬性的長度。請注意,我們沒有為Address屬性賦值,因此它被設(shè)置為null。

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

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

圖一:空引用異常

以下代碼示例展示了如何在C#中使用空條件運(yùn)算符來避免運(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ū)ο蟮闹挡粫閚ull,并且希望抑制知道是錯(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)算符 (?:) 來評估包含其中一個(gè)操作數(shù)為null值的表達(dá)式。條件運(yùn)算符也被稱為三元條件運(yùn)算符,因?yàn)槭褂迷撨\(yùn)算符的語句有三個(gè)部分:條件(布爾表達(dá)式)、結(jié)果表達(dá)式和備選表達(dá)式。如果條件為真,則結(jié)果表達(dá)式(在冒號左側(cè))將被評估/返回。如果條件為假,則備選表達(dá)式(在冒號右側(cè))將被評估/返回。以下是一個(gè)示例,演示了如何在表達(dá)式中使用條件運(yùn)算符來處理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來檢查一個(gè)值是否為null。這個(gè)關(guān)鍵字(同時(shí)也是一個(gè)運(yùn)算符)可以用于比較常量值甚至null值。以下代碼片段展示了如何在C#中使用這個(gè)運(yùn)算符來處理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)算符來檢查null值。使用這里展示的運(yùn)算符來處理null值的主要目標(biāo)是避免編寫處理異常的代碼。使用這些技術(shù),可以保持代碼的整潔和可管理性。

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

相關(guān)文章

  • Unity實(shí)現(xiàn)游戲傷害數(shù)字顯示HUD的方法

    Unity實(shí)現(xiàn)游戲傷害數(shù)字顯示HUD的方法

    游戲中收到傷害掉血,會有飄動的傷害數(shù)值,本文主要介紹Unity實(shí)現(xiàn)游戲傷害數(shù)字顯示HUD的方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • c#讀取excel內(nèi)容內(nèi)容示例分享

    c#讀取excel內(nèi)容內(nèi)容示例分享

    這篇文章主要介紹了c#讀取excel內(nèi)容內(nèi)容示例,要求Excel需是.xls格式,需要的朋友可以參考下
    2014-03-03
  • 基于C#實(shí)現(xiàn)串口通信

    基于C#實(shí)現(xiàn)串口通信

    這篇文章主要為大家詳細(xì)介紹了基于C#實(shí)現(xiàn)串口通信,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C#使用Spire.PDF for .NET實(shí)現(xiàn)將PDF轉(zhuǎn)換為PCL格式

    C#使用Spire.PDF for .NET實(shí)現(xiàn)將PDF轉(zhuǎn)換為PCL格式

    PCL 是一種被大量激光打印機(jī)廣泛支持的頁面描述語言,將 PDF 轉(zhuǎn)換為 PCL是許多從事打印解決方案開發(fā)的 C# 開發(fā)者常見的需求,下面小編就和大家詳細(xì)講講如何使用Spire.PDF for .NET 在 C# 中將 PDF 文件轉(zhuǎn)換為 PCL 格式吧
    2026-03-03
  • c# 適配器模式

    c# 適配器模式

    適配器模式:將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另一個(gè)接口,Adapter使原本由于接口不兼容而不能一起工作的那些類可以一起工作
    2012-10-10
  • .Net6開發(fā)winform程序使用依賴注入

    .Net6開發(fā)winform程序使用依賴注入

    本文詳細(xì)講解了.Net6開發(fā)winform程序使用依賴注入的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • 探討c#中的unchecked是什么意思,起什么作用?

    探討c#中的unchecked是什么意思,起什么作用?

    本篇文章是對c#中的unchecked進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • C#調(diào)用python腳本的方法詳解

    C#調(diào)用python腳本的方法詳解

    這篇文章主要為大家詳細(xì)介紹了C#調(diào)用python腳本的方法,文中通過示例代碼介紹的非常詳細(xì),感興趣的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • C#實(shí)現(xiàn)Word轉(zhuǎn)PDF的方法總結(jié)

    C#實(shí)現(xiàn)Word轉(zhuǎn)PDF的方法總結(jié)

    這篇文章主要為大家詳細(xì)介紹了C#中實(shí)現(xiàn)Word轉(zhuǎn)PDF的常用方法,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,有需要的小伙伴可以參考下
    2023-10-10
  • C#中使用jieba.NET、WordCloudSharp制作詞云圖的步驟

    C#中使用jieba.NET、WordCloudSharp制作詞云圖的步驟

    之前一篇文章介紹的是使用Python的jieba、wordcloud的庫生成詞云圖,本文則介紹在C#中如何使用jieba.NET、WordCloudSharp庫生成詞云圖,感興趣的朋友一起看看吧
    2021-07-07

最新評論

独山县| 平和县| 英德市| 会东县| 丹东市| 合阳县| 岗巴县| 时尚| 称多县| 金山区| 兴义市| 仁布县| 怀化市| 绵竹市| 庆城县| 湟源县| 陕西省| 剑川县| 安顺市| 澄迈县| 伊宁县| 西充县| 公安县| 扬中市| 南宫市| 仁布县| 镶黄旗| 林芝县| 怀来县| 南溪县| 普洱| 博白县| 柘荣县| 游戏| 阜新市| 基隆市| 贵阳市| 景德镇市| 武义县| 靖远县| 普格县|