1. 可空型別修飾符(?):4.null檢查運算子(?.)引用型別可以使用空引用表示乙個不存在的值,而值型別通常不能表示為空。
例如: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,是省略if{}else{}的簡單形式。
3. 空合併運算子(??):
用於定義可空型別和引用型別的預設值。如果此運算子的左運算元不為null,則此運算子將返回左運算元,否則返回右運算元。
例如:a??b 當a為null時則返回b,a不為null時則返回a本身。
空合併運算子為右結合運算子,即操作時從右向左進行組合的。如,「a??b??c」的形式按「a??(b??c)」計算。
int? firstx = null;
if (points != null)
**取變得難讀多了。在c# 6.0中,引入了乙個 ?. 的運算子,前面的**可以改成如下形式:
int? firstx = points?.firstordefault()?.x;從這個例子中我們也可以看出它的基本用法:如果物件為null,則不進行後面的獲取成員的運算,直接返回null
需要注意的是,由於"?.「運算子返回的可以是null,當返回的成員型別是struct型別的時候,」?.「和」."運算子的返回值型別是不一樣的。point p = new point(3, 2);
console.writeline(p.x.gettype() == typeof(int)); //true
console.writeline(p?.x.gettype() == typeof(int?)); //true
5"?"運算子:
int? first = customers?[0].orders.count();
C 中 的使用
c 中的方括號可用於陣列,索引,屬性,更重要的是可以用於外部dll類庫的引用。c 實現.net元件與com元件的互操作 dllimport kernel32.dll 這叫引入kernel32.dll這個動態連線庫。這個動態連線庫裡面包含了很多windowsapi函式,如果你想使用這面的函式,就需要這...
c 中 的使用
對於習慣使用c進行開發的朋友們,在看到c 中出現的 符號,可能會犯迷糊,因為在c語言中這個符號表示了取位址符,但是在c 中它卻有著不同的用途,掌握c 的 符號,是提高 執行效率和增強 質量的乙個很好的辦法。在 c 學習提高篇 3 隱式指標的文章中我詳細介紹了在隱式指標 的用法,其實這兩個概念是統一的...
C 中datetime的使用
c 中datetime的使用 大家在做報表或查詢的時候都會有給使用者預設一些可選的日期範圍 如本年度銷售額 本季度利潤 本月新增客戶 c 裡內建的 datetime 基本上都可以實現這些功能,巧用 datetime 會使你處理這些事來變輕鬆多了 今天 datetime.now.date.toshor...