首頁  >  文章  >  类库下载  >  C#中的?有哪些用法

C#中的?有哪些用法

清浅
清浅原創
2019-04-13 10:14:333244瀏覽

在C#中的?表示可空類型,它可以表示基礎類型的所有T值以及另外的空值,? ?表示的是空合併運算子表示的是當運算元不為null時回傳左側值否則回傳右側等等

#在C#中的?會因為個數的不同而有不同的用法,例如?與? ?這兩個運算子的意思就不相同。接下來將在文章中為大家詳細介紹C#中的?具體有哪些用法,具有一定的參考價值,希望對大家有幫助

C#中的?有哪些用法

#【推薦課程:##C#語言教學

? (可空型別)

可空型別是

System.Nullable 8742468051c85b06f0a0af9e3e506b5c結構的實例,可空型別可以表示基礎型別的所有值T,以及另外的空值。基礎類型T可以是任何不可為空的值類型。但是T不能是參考類型。

當用於表示基礎類型的未定義值時,就可以使用可空型別。可空型別具有以下特徵:

(1)在可空型別下,可以為變數指派空值,而無需根據參考型別建立可空型別。

(2)可空型別不支援巢狀的Nullable類型。

(3)可空型別不支援var型別。如果使用Nullable和var,那麼就會出現編譯錯誤

範例:

// C# program to illustrate the 
// use of Nullable type 
using System; 
class GFG { 
    // 主方法
    static public void Main() 
    { 
        int ? a = null; 
        int ? b = 2345; 
        Console.WriteLine(a); 
        Console.WriteLine(b); 
    } 
}

輸出結果:2345


? ? (空合併運算子)

在C#中??運算子稱為null-coalescing運算符,即空合併運算子。意義是當運算元不為null,則傳回左側操作數; 否則它傳回右側運算元。如果在不使用??運算子的情況下將可空值類型指派給非可空值類型,則會產生編譯時錯誤。如果使用強制轉換,且目前未定義可空值類型,InvalidOperationException則會引發例外狀況。

例:

//声明a和b
int?a=null; 
int b;
b=a??2;//b的值为2
a=6;
b=a??8;//b的值为6

?:(三元運算子)

在C#中,有一個特殊的運算子叫做三元運算符,類似if-else。三元運算子比較兩個值並基於它傳回一個值。三元運算子的語法是:

条件表达式?表达式1:表达式2;

它可以傳回任何資料類型的值。

範例:

using System;    
namespace Tutpoint  {      
class Program      
{          
public static void Compare(int a, int b)          
{              
string output = a > b ? "A 大于 B" : "B 大于 A";              
Console.WriteLine(output);          
}          
static void Main(string[] args)          
{             
 Program.Compare(66, 579);              
 Console.ReadKey();          
 }      
 }  }

結果輸出為:B 大於 A


#總結:以上就是這篇文章的全部內容了,希望對大家有幫助。

以上是C#中的?有哪些用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn