C#中的 ?/?:/?? 三者的區別及用法


在項目的搭建過程中不經意間看到一個關於以上標題三個符號的代碼,於是留心記錄一下,以備不時之需;

  • 1. 可空類型修飾符(?):

            引用類型可以使用空引用表示一個不存在的值,而值類型通常不能表示為空。
            例如:string str=null; 是正確的,int i=null; 編譯器就會報錯。
            為了使值類型也可為空,就可以使用可空類型,即用可空類型修飾符"?"來表示,表現形式為"T?"
            例如:int? 表示可空的整形,DateTime? 表示可為空的時間。
            T? 其實是System.Nullable(泛型結構)的縮寫形式,也就意味着當你用到T?時編譯器編譯 時會把T?編譯成System.Nullable的形式。
            例如:int?,編譯后便是System.Nullable的形式。

  • 2. 三元(運算符)表達式(?:):

             例如:x ? y : z ; 表示如果表達式x為true,則返回y;如果x為false,則返回z

  • 3. 空合並運算符(??):

              用於定義可空類型和引用類型的默認值。如果此運算符的左操作數不為null,則此運算符將返回左操作數,否則返回右操作數。
              例如:a??b 當a為null時則返回b,a不為null時則返回a本身,如果兩個都是null的話返回null;

 

 

完整測試項目:請點擊這里!

版權聲明:本文為博主原創文章,如需轉載,請標明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM