日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

NET CLR via c# 第4版笔记 第19章 可空值类型

發布時間:2024/4/17 C# 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NET CLR via c# 第4版笔记 第19章 可空值类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

System.Nullable<T>結構.

19.1 C# 對可空值類型的支持

  • C# 允許用問號表示法來聲明可空值類型,如:
Int32? x = 5;Int32? y = null;
  • System.Nullable<T>應用操作符解析規則:
    • 一元操作符(+, ++, -, --, !, ~) 操作數是 null ,結果就是 null.
    • 二元操作符(+, -, *, /, %, &, |, ^, <<, >>) 兩個操作數任何一個是 null ,結果就是 null . 但有一個例外,它發生在將 &| 操作符應用于 Boolean? 操作數的時候.這種情況和 SQL 的三值邏輯一樣.都不為 null ,正常計算;都為 null ,結果為 null ;其一為 null 時,見下面示例:
      null & true = null ; null | true = true ; null & false = false ; null | false = null ;
    • 相等操作符(==, !=) 兩個操作數都是 null,兩者相等; 一個操作數是 null, 兩者不相等;兩個操作數都不是 null,就比較值來判斷是否相等.
    • 關系操作符(<, >, <=, >=) 兩個操作數任何一個是 null,結果就是 false ,兩個操作數都不是 null,就比較值.
  • 操作可空實例會生成大量代碼,且速度慢于非可空類型.
  • 定義自己的值類型來重載操作符,編譯器能正確識別它并調用你重載的操作符(方法).

19.2 C# 的空接合操作符

  • C# 提供了一個"空接合操作符",即 ?? 操作符,它要取兩個操作數.假如左邊的操作數不為 null,就返回這個操作數的值,否則,就返回右邊的操作數的值.
  • 既可用于引用類型,也能用于可空值類型.
int? b = null;//下面等價于:// x =(b.HasValue) ? b.Value : 123int x = b ?? 123;Console.WriteLine(x); // "123"//下面這行等價于:// string temp = GetFilename();// filename = (temp != null) ? temp : "Untitled";string filename = GetFilename() ?? "Untitled";

19.3 CLR 對可空值類型的特殊支持

  • 裝箱: 當 CLR 對 Nullable<T> 實例進行裝箱時,會檢查它是否為 null .如果是,CLR 不裝箱任何東西,直接返回 null . 如果不為 null , CLR 從可空實例中取出值并進行裝箱.
  • 拆箱:
//創建已裝箱的 Int32object o = 5;//把它拆箱為一個 Nullable<int>和一個intint? a = (int?)o; // a = 5int b = (int)o; // a = 5//創建初始化為null的一個引用o = null;a = (int?)o; // a = nullb = (int)o; // NullReferenceException
  • 在 Nullable<T> 對象上調用 GetType,會返回 T 的類型
  • Nullable<Int32> 類型的變量 n 可以轉型為接口類型 IComparable<Int32>
int? n = 5;int result = ((IComparable)n).CompareTo(5);Console.WriteLine(result);

轉載于:https://www.cnblogs.com/harry-wang/p/7410559.html

總結

以上是生活随笔為你收集整理的NET CLR via c# 第4版笔记 第19章 可空值类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。