NET CLR via c# 第4版笔记 第19章 可空值类型
生活随笔
收集整理的這篇文章主要介紹了
NET CLR via c# 第4版笔记 第19章 可空值类型
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
System.Nullable<T> 是結構.
19.1 C# 對可空值類型的支持
- C# 允許用問號表示法來聲明可空值類型,如:
- 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,就返回這個操作數的值,否則,就返回右邊的操作數的值.
- 既可用于引用類型,也能用于可空值類型.
19.3 CLR 對可空值類型的特殊支持
- 裝箱: 當 CLR 對 Nullable<T> 實例進行裝箱時,會檢查它是否為 null .如果是,CLR 不裝箱任何東西,直接返回 null . 如果不為 null , CLR 從可空實例中取出值并進行裝箱.
- 拆箱:
- 在 Nullable<T> 對象上調用 GetType,會返回 T 的類型
- Nullable<Int32> 類型的變量 n 可以轉型為接口類型 IComparable<Int32>
轉載于:https://www.cnblogs.com/harry-wang/p/7410559.html
總結
以上是生活随笔為你收集整理的NET CLR via c# 第4版笔记 第19章 可空值类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【JSOI2008】星球大战 (并查集)
- 下一篇: OVERLAPPED结构与GetOver