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

C#中單問號(?)和雙問號(??)的用法整理

 更新時間:2022年05月24日 14:03:22   作者:springsnow  
本文詳細(xì)講解了C#中單問號(?)和雙問號(??)的用法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、可空類型修飾符(?)

C#2.0里面實現(xiàn)了Nullable數(shù)據(jù)類型

//A.比如下面一句,直接定義int為null是錯誤的,錯誤提示為無法將null轉(zhuǎn)化成int,因為后者是不可以為null的值類型。
private int getNum = null;

//B.如果修改為下面的寫法就可以初始指為null,在特定情況下?等同于基礎(chǔ)類型為Nullable。
private int? getNum = null;
private Nullable<int> getNumNull = null;

二、三元運(yùn)算符(?:)

需要if語句來判斷,當(dāng)Request.Params["para"]不為null時,取出para的值。

string strParam =Request.Params["para"];  
if ( strParam== null )  
 {  
    strParam= "";  
 }

用三元運(yùn)算符?簡化寫法,取出para的值。

string strParam=Request.Params["para"] == null ? "":Request.Params["para"];

三、null合并運(yùn)算符(??)

?? 運(yùn)算符稱為“ null 合并運(yùn)算符”,用于定義可以為 null 值的類型和引用類型的默認(rèn)值。合并運(yùn)算符為類型轉(zhuǎn)換定義了一個預(yù)設(shè)值,以防可空類型的值為Null。

如果此運(yùn)算符的左操作數(shù)不為 null,則此運(yùn)算符將返回左操作數(shù);否則返回右操作數(shù)。

int? x = null;//定義可空類型變量
int? y = x ?? 1000;//使用合并運(yùn)算符,當(dāng)變量x為null時,預(yù)設(shè)賦值1000
Console.WriteLine(y.ToString()); //1000

null 合并運(yùn)算符為結(jié)合運(yùn)算符,即操作時從右向左進(jìn)行組合的。如,“a??b??c”的形式按“a??(bb??cc)”計算。

如果在嘗試將可以為 null 值的類型分配給不可以為 null 值的類型時沒有使用 ?? 運(yùn)算符,則會生成編譯時錯誤。如果使用強(qiáng)制轉(zhuǎn)換,且當(dāng)前還未定義可以為 null 值的類型,則會引發(fā)InvalidOperationException 異常。

//A.定義getNum為null,輸出結(jié)果為0
private int? getNum = null;
Console.WriteLine(getNum ?? 0);

//B.定義getNum為1,輸出結(jié)果為1
 private int getNum = 1;
 Console.WriteLine(getNum ?? 0);

四、NULL條件運(yùn)算符(?.) 

在C# 6.0中,引入了一個 ?. 的運(yùn)算符。

如果對象為NULL,則不進(jìn)行后面的獲取成員的運(yùn)算,直接返回NULL

void Main()
{

    //首先我們定義全局變量Person對象,有可能p為null的情況下取值。
    Person p = null;
    string telePhoneNo = string.Empty;  //定義telePhoneNo 

    //取Person的telePhoneNo 
    //A.初始寫法,if條件判斷
    if (p != null)
    {
        if (p.Secret != null)
        {
            telePhoneNo = p.Secret.TelePhoneNo;
        }
    }

    //B.三元運(yùn)算符寫法,單問號?
    telePhoneNo = p != null ? (p.Secret != null ? p.Secret.TelePhoneNo : "") : "";

    //C. NULL檢查運(yùn)算符?.
    telePhoneNo = p?.Secret?.TelePhoneNo ?? "";
    Console.Write(telePhoneNo);
}

public class SecretByMySelf
{
    public string Password { get; set; }
    public string TelePhoneNo { get; set; }
}

public class Person
{
    public string Name { get; set; }
    public SecretByMySelf Secret { get; set; }
}

五、?[]"運(yùn)算符:

用于在執(zhí)行成員訪問 (?.) 或索引 (?[) 操作之前,測試是否存在 NULL。 這些運(yùn)算符可幫助編寫更少的代碼來處理 null 檢查,尤其是對于下降到數(shù)據(jù)結(jié)構(gòu)。

int? count = customers?[0]?.Orders?.Count(); 
 // null if customers, the first customer, or Orders is null

到此這篇關(guān)于C#中單問號(?)和雙問號(??)的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#控件編程之文本框(TextBox)的使用

    C#控件編程之文本框(TextBox)的使用

    這篇文章主要介紹了C#控件編程之文本框(TextBox)的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • C#中的ICustomFormatter及IFormatProvider接口用法揭秘

    C#中的ICustomFormatter及IFormatProvider接口用法揭秘

    這篇文章主要介紹了C#中的ICustomFormatter及IFormatProvider接口用法揭秘,本文能過分析一段代碼得出一些研究結(jié)果,需要的朋友可以參考下
    2015-06-06
  • 使用C#實現(xiàn)阿拉伯?dāng)?shù)字到大寫中文的轉(zhuǎn)換

    使用C#實現(xiàn)阿拉伯?dāng)?shù)字到大寫中文的轉(zhuǎn)換

    這篇文章主要介紹了C#實現(xiàn)阿拉伯?dāng)?shù)字轉(zhuǎn)為大寫中文的實現(xiàn)代碼,需要的朋友可以參考下
    2007-03-03
  • C#中Request.Cookies 和 Response.Cookies 的區(qū)別分析

    C#中Request.Cookies 和 Response.Cookies 的區(qū)別分析

    本文通過實例代碼向我們展示了C#中Request.Cookies 和 Response.Cookies 的區(qū)別,文章淺顯易懂,這里推薦給大家。
    2014-11-11
  • C# 結(jié)合 Javascript 測試獲取天氣信息

    C# 結(jié)合 Javascript 測試獲取天氣信息

    本文將介紹如何使用 C# 并結(jié)合 JavaScript 獲取天氣信息,獲取的數(shù)據(jù)來源于360瀏覽器首頁數(shù)據(jù),對C# 獲取天氣信息示例代碼感興趣的朋友一起看看吧
    2024-08-08
  • C#備份文件夾的兩種方法

    C#備份文件夾的兩種方法

    在C#編程中,文件夾操作是不可或缺的一部分,它允許開發(fā)者創(chuàng)建、刪除、移動和管理文件系統(tǒng)中的目錄結(jié)構(gòu),本文給大家介紹了C#備份文件夾的兩種方法,需要的朋友可以參考下
    2024-12-12
  • C# 動態(tài)加載程序集信息

    C# 動態(tài)加載程序集信息

    在設(shè)計模式的策略模式中,需要動態(tài)加載程序集信息,本文通過一個簡單的實例,來講解動態(tài)加載Dll需要的知識點。下面跟著小編一起來看下吧
    2017-03-03
  • C#?泛型集合類List<T>使用總結(jié)

    C#?泛型集合類List<T>使用總結(jié)

    本文主要主要介紹了C#?泛型集合類List<T>使用總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>
    2022-05-05
  • C#如何通過匿名類直接使用訪問JSON數(shù)據(jù)詳解

    C#如何通過匿名類直接使用訪問JSON數(shù)據(jù)詳解

    這篇文章主要給大家介紹了關(guān)于C#如何通過匿名類直接使用訪問JSON數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起看看吧。
    2018-02-02
  • 淺談static a[n*m]={0};中static的作用

    淺談static a[n*m]={0};中static的作用

    下面小編就為大家?guī)硪黄獪\談static a[n*m]={0};中static的作用。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03

最新評論

宜宾县| 凤山市| 徐汇区| 淮北市| 报价| 黑山县| 梨树县| 乐山市| 绥芬河市| 什邡市| 纳雍县| 丘北县| 神农架林区| 临夏县| 岱山县| 甘德县| 吉首市| 布尔津县| 彭山县| 和政县| 灌阳县| 奉新县| 巧家县| 岢岚县| 大冶市| 剑河县| 南昌县| 江华| 福贡县| 三都| 浠水县| 扎囊县| 吴忠市| 亚东县| 西华县| 托里县| 贵溪市| 上饶县| 井研县| 赣榆县| 鞍山市|