在C#中的?表示可空類型,它可以表示基礎類型的所有T值以及另外的空值,? ?表示的是空合併運算子表示的是當運算元不為null時回傳左側值否則回傳右側等等
#在C#中的?會因為個數的不同而有不同的用法,例如?與? ?這兩個運算子的意思就不相同。接下來將在文章中為大家詳細介紹C#中的?具體有哪些用法,具有一定的參考價值,希望對大家有幫助
#【推薦課程:##C#語言教學】
? (可空型別)
可空型別是System.Nullable 結構的實例,可空型別可以表示基礎型別的所有值T,以及另外的空值。基礎類型T可以是任何不可為空的值類型。但是T不能是參考類型。
// 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); } }
? ? (空合併運算子)
在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(); } } }
以上是C#中的?有哪些用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!