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

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

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

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

說明

  • 可空類型標(biāo)記符?用于指示某個(gè)值類型(如intfloat等)可以為null。這是C# 2.0引入的一個(gè)特性,用于處理數(shù)據(jù)庫查詢、JSON解析等場(chǎng)景中可能出現(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的對(duì)象的成員之前進(jìn)行空檢查。如果對(duì)象為null,則不會(huì)嘗試訪問其成員,而是直接返回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ù)條件選擇兩個(gè)值之一。其語法為condition ? expression1 : expression2。

示例代碼

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

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

空值合并操作符(??)

說明

  • 空值合并操作符??用于在第一個(gè)操作數(shù)為null時(shí)返回第二個(gè)操作數(shù)的值,否則返回第一個(gè)操作數(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及更高版本中引入的一個(gè)特性,它結(jié)合了空值合并運(yùn)算符(??)和賦值運(yùn)算符(=)的功能。這個(gè)運(yùn)算符用于將右側(cè)的值賦給左側(cè)的變量,但僅當(dāng)左側(cè)的變量為null時(shí)。如果左側(cè)的變量不為null,則不會(huì)更改其值。這提供了一種更簡(jiǎn)潔的方式來為可能為null的變量提供默認(rèn)值或更新它們的值,而無需編寫額外的if語句。

示例代碼

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

firstName = "John";
firstName ??= "未知"; // firstName 不是 null,所以不會(huì)更改其值
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,所以不會(huì)更改其值
Console.WriteLine(age.HasValue ? age.Value.ToString() : "null"); // 輸出: 25

// 示例使用類對(duì)象的屬性
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,所以不會(huì)更改其值
Console.WriteLine(person.Name); // 輸出: John Doe

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

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

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

相關(guān)文章

  • C# 類class 方法示例詳解

    C# 類class 方法示例詳解

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

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

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

    C# 如何添加錯(cuò)誤日志信息

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

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

    這篇文章主要介紹了C#簡(jiǎn)單的特殊輸出,以實(shí)例實(shí)現(xiàn)了針對(duì)一些特殊字符與位置的輸出控制,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    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ū)動(dòng)的應(yīng)用開發(fā)中,將程序內(nèi)存中的數(shù)據(jù)以結(jié)構(gòu)化的形式呈現(xiàn)給用戶是一個(gè)普遍的需求,其中,將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)顏色漸變滑動(dòng)條

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

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

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

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

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

    這篇文章主要為大家詳細(xì)介紹了UGUI繪制動(dòng)態(tài)曲線的具體方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    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

最新評(píng)論

定远县| 东乡族自治县| 牟定县| 涟水县| 新建县| 同德县| 丽水市| 黔江区| 定安县| 寿宁县| 荔波县| 汉川市| 汾阳市| 南部县| 尖扎县| 光泽县| 织金县| 铁岭县| 上犹县| 秭归县| 仁布县| 布拖县| 琼结县| 信宜市| 青海省| 宜良县| 海口市| 丹寨县| 宁阳县| 韶山市| 衡南县| 遵化市| 洛隆县| 瑞丽市| 辉县市| 丽水市| 赫章县| 朝阳区| 榆树市| 麻江县| 吐鲁番市|