c# 可空類型

來源:互聯網
上載者:User
可空類型是System.Nullable結構體的實列。一個可空類型代表了相應實值型別的正確範圍附加null值。例如Nullable<Int32>的取值範圍應該是-2147483648到2147483647外加null。Null<bool>的取值為true,false和null。這種方法一般在處理資料庫的時候用到,因為資料庫裡面可能含有沒有賦值的實值型別。class NullableExample{    static void Main()    {        int? num = null;        if (num.HasValue == true)        {            System.Console.WriteLine("num = " + num.Value);        }        else        {            System.Console.WriteLine("num = Null");        }        // y將會被設定“0”。        int y = num.GetValueOrDefault();    // 如果num.HasValue為空白,那麼num.Value將會拋出InvalidOperationException異常。        try        {            y = num.Value;        }        catch (System.InvalidOperationException e)        {            System.Console.WriteLine(e.Message);        }    }}輸出的結果:num = NullNullable object must have a value.可空類型具有如下的屬性:•可空類型只能應用於實值型別,參考型別因為已經支援了null而不能被使用。•T?是System.Nullable<T>的縮寫,這裡T是一個實值型別。這兩種格式是可以互換的。•可以像使用普通類型一樣使用可空類型。例如int? x = 10;或者double? d = 40108;•使用System.Nullable.GetValueOrDefault還獲得值,或者當它為空白的時候獲得預設值。•使用HaseValue和Value唯讀屬性來測試它是不是空並且返回相應的非空值。    •如果含有值那麼HaseValue返回真,否則返回假。    •如果含有值那麼Value傳回值,否則拋出System.InvalidOperationException異常。    •HaseValue預設值為假,Value預設為未定義。•當向實值型別獲得可空類型的值得時候,使用??運算子來賦予一個可空類型一個預設值。例如:int? x = null; int y = x ?? -1;•不可以嵌套可空類型。Nullable<Nullabel<int>> n;將會拋出異常。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.