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

C# ?的使用小結(jié)

 更新時間:2024年11月29日 10:59:08   作者:語衣  
本文介紹了C#中可空類型標(biāo)記符(?)及其相關(guān)運(yùn)算符的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

可空類型標(biāo)記符(?)

說明

  • 可空類型標(biāo)記符?用于指示某個值類型(如int、float等)可以為null。這是C# 2.0引入的一個特性,用于處理數(shù)據(jù)庫查詢、JSON解析等場景中可能出現(xiàn)的空值。

示例代碼

int? nullableInt = 5;
int? nullableIntWithNull = null;

if (nullableInt.HasValue)
{
    Console.WriteLine(nullableInt.Value); // 輸出: 5
}

if (!nullableIntWithNull.HasValue)
{
    Console.WriteLine("The value is null."); // 輸出: The value is null.
}

空值傳播操作符(?.)

說明

  • 空值傳播操作符?.用于在訪問可能為null的對象的成員之前進(jìn)行空檢查。如果對象為null,則不會嘗試訪問其成員,而是直接返回null。

示例代碼

string str = null;
int? length = str?.Length; // length 為 null,因?yàn)?str 為 null

Person person = null;
string jobTitle = person?.JobTitle; // jobTitle 為 null,因?yàn)?person 為 null

person = new Person { JobTitle = "Software Engineer" };
jobTitle = person?.JobTitle; // jobTitle 為 "Software Engineer"

條件(三元)運(yùn)算符(?:)

說明

  • 條件運(yùn)算符?:是C#中的三元運(yùn)算符,用于根據(jù)條件選擇兩個值之一。其語法為condition ? expression1 : expression2。

示例代碼

int x = 10;
int y = 5;
int max = x > y ? x : y; // max 為 10

Console.WriteLine("最大值: " + max);

空值合并操作符(??)

說明

  • 空值合并操作符??用于在第一個操作數(shù)為null時返回第二個操作數(shù)的值,否則返回第一個操作數(shù)的值。這常用于提供默認(rèn)值以避免null引發(fā)的異常。

示例代碼

string name = null;
string displayName = name ?? "匿名用戶"; // displayName 為 "匿名用戶"

string username = "DeveloperDave";
displayName = username ?? "Newbie"; // displayName 為 "DeveloperDave",因?yàn)?username 不為 null

Console.WriteLine(displayName);

空值合并賦值運(yùn)算符(??=)

說明

  • 空值合并賦值運(yùn)算符??=是C# 8.0及更高版本中引入的一個特性,它結(jié)合了空值合并運(yùn)算符(??)和賦值運(yùn)算符(=)的功能。這個運(yùn)算符用于將右側(cè)的值賦給左側(cè)的變量,但僅當(dāng)左側(cè)的變量為null時。如果左側(cè)的變量不為null,則不會更改其值。這提供了一種更簡潔的方式來為可能為null的變量提供默認(rèn)值或更新它們的值,而無需編寫額外的if語句。

示例代碼

string firstName = null;
firstName ??= "未知"; // 如果 firstName 是 null,則將其設(shè)置為 "未知"
Console.WriteLine(firstName); // 輸出: 未知

firstName = "John";
firstName ??= "未知"; // firstName 不是 null,所以不會更改其值
Console.WriteLine(firstName); // 輸出: John

// 示例使用可空類型
int? age = null;
age ??= 30; // 如果 age 是 null,則將其設(shè)置為 30
Console.WriteLine(age.HasValue ? age.Value.ToString() : "null"); // 輸出: 30

age = 25;
age ??= 30; // age 不是 null,所以不會更改其值
Console.WriteLine(age.HasValue ? age.Value.ToString() : "null"); // 輸出: 25

// 示例使用類對象的屬性
Person person = null;
person ??= new Person { Name = "默認(rèn)名稱" }; // 如果 person 是 null,則創(chuàng)建新實(shí)例并賦值
if (person != null)
{
    Console.WriteLine(person.Name); // 如果 person 是新創(chuàng)建的實(shí)例,則輸出: 默認(rèn)名稱
}

person = new Person { Name = "John Doe" };
person.Name ??= "默認(rèn)名稱"; // person.Name 不是 null,所以不會更改其值
Console.WriteLine(person.Name); // 輸出: John Doe

在上面的示例中,??= 運(yùn)算符首先檢查左側(cè)的變量(或?qū)傩裕┦欠駷?code>null。如果是,則將其設(shè)置為右側(cè)的值;如果不是,則保持其當(dāng)前值不變。這種操作對于初始化可能為null的變量或在某些條件下更新它們非常有用。

請注意,最后一個示例中嘗試使用??=來更新Person對象的Name屬性可能不會按預(yù)期工作,因?yàn)?code>??=是專門為變量賦值設(shè)計(jì)的,而不是用于屬性的。在屬性上使用??=會導(dǎo)致編譯錯誤,除非該屬性是特殊的(如可空值類型的自動實(shí)現(xiàn)屬性)。

到此這篇關(guān)于C# ?的使用小結(jié)的文章就介紹到這了,更多相關(guān)C# ?使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C# 類class 方法示例詳解

    C# 類class 方法示例詳解

    這段SEO描述融合了C#類、靜態(tài)方法和非靜態(tài)方法三個關(guān)鍵詞,概括了文章主要內(nèi)容,描述了C#類的定義、方法的創(chuàng)建與調(diào)用、靜態(tài)方法與非靜態(tài)方法的區(qū)別等以及對象方法的訪問等,適合對C#編程感興趣的讀者
    2026-06-06
  • C#實(shí)現(xiàn)子窗體與父窗體通信方法實(shí)例總結(jié)

    C#實(shí)現(xiàn)子窗體與父窗體通信方法實(shí)例總結(jié)

    這篇文章主要介紹了C#實(shí)現(xiàn)子窗體與父窗體通信方法,實(shí)例總結(jié)了常用的四種窗體通信方法,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • C# 如何添加錯誤日志信息

    C# 如何添加錯誤日志信息

    這篇文章主要介紹了C# 如何添加錯誤日志信息,錯誤日志是軟件用來記錄運(yùn)行時出錯信息的文本文件。編程人員和維護(hù)人員等可以利用錯誤日志對系統(tǒng)進(jìn)行調(diào)試和維護(hù)。
    2020-11-11
  • C#簡單的特殊輸出實(shí)例

    C#簡單的特殊輸出實(shí)例

    這篇文章主要介紹了C#簡單的特殊輸出,以實(shí)例實(shí)現(xiàn)了針對一些特殊字符與位置的輸出控制,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-11-11
  • C#實(shí)現(xiàn)打印與打印預(yù)覽功能的思路及代碼

    C#實(shí)現(xiàn)打印與打印預(yù)覽功能的思路及代碼

    這篇文章主要介紹了C#實(shí)現(xiàn)打印與打印預(yù)覽功能的思路及代碼,有需要的朋友可以參考一下
    2013-12-12
  • C#使用Spire.XLS for .NET將List數(shù)據(jù)導(dǎo)出Excel的操作指南

    C#使用Spire.XLS for .NET將List數(shù)據(jù)導(dǎo)出Excel的操作指南

    在現(xiàn)代數(shù)據(jù)驅(qū)動的應(yīng)用開發(fā)中,將程序內(nèi)存中的數(shù)據(jù)以結(jié)構(gòu)化的形式呈現(xiàn)給用戶是一個普遍的需求,其中,將C# List集合中的數(shù)據(jù)導(dǎo)出到Excel文件,成為了開發(fā)者們經(jīng)常需要實(shí)現(xiàn)的功能,本文將介紹如何使用 Spire.XLS for .NET將 List<T> 數(shù)據(jù)寫入Excel文件,需要的朋友可以參考下
    2026-02-02
  • Unity實(shí)現(xiàn)顏色漸變滑動條

    Unity實(shí)現(xiàn)顏色漸變滑動條

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)顏色漸變滑動條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • C#資源釋放方法實(shí)例分析

    C#資源釋放方法實(shí)例分析

    這篇文章主要介紹了C#資源釋放方法,結(jié)合實(shí)例詳細(xì)分析了C#資源釋放的具體方法與相關(guān)技巧,需要的朋友可以參考下
    2016-02-02
  • UGUI繪制動態(tài)曲線

    UGUI繪制動態(tài)曲線

    這篇文章主要為大家詳細(xì)介紹了UGUI繪制動態(tài)曲線的具體方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • C#使用ToUpper()與ToLower()方法將字符串進(jìn)行大小寫轉(zhuǎn)換的方法

    C#使用ToUpper()與ToLower()方法將字符串進(jìn)行大小寫轉(zhuǎn)換的方法

    這篇文章主要介紹了C#使用ToUpper()與ToLower()方法將字符串進(jìn)行大小寫轉(zhuǎn)換的方法,實(shí)例分析了C#大小寫轉(zhuǎn)換的相關(guān)技巧,需要的朋友可以參考下
    2015-04-04

最新評論

东乌珠穆沁旗| 措美县| 旅游| 靖江市| 玉山县| 老河口市| 金寨县| 阳春市| 中江县| 万宁市| 凤山市| 富平县| 连江县| 平和县| 乌鲁木齐县| 金寨县| 岳阳市| 定陶县| 包头市| 札达县| 称多县| 江口县| 靖西县| 定结县| 绍兴市| 卫辉市| 娱乐| 栾城县| 望城县| 甘德县| 和静县| 宁波市| 页游| 达州市| 东丰县| 怀安县| 邵阳县| 汶川县| 和硕县| 丰台区| 望江县|