Reading C#高級編程(第四版)………………………………………………………………………………………………………………………………………………………
1、使用checked和unchecked:
byte b=255;
checked {
b++;
}
此時會拋異常,也可以在編譯選項中設置,但是無論如何都需要作者自己考慮清楚是否會溢出
2、is和as,typeof
is用於判定類型,as用於做轉換,typeof用於求類型
3、運算規則
規則一:null和任何東西運算結果都是null,比較結果是false
int? x;表示x可爲null
b=x ?? 10;如果x是null則b爲10
規則二:隱式轉換遵從小到大的原則
不滿足該規則的要進行顯示轉換 int i=(int)12000000000000
string s;
int i=int.Parse(s);
4、裝箱與拆箱
int i=20;
object o=i;
int j=(object )o;
值類型的對象會被複制到堆上
5、比較
RefrenceEqual
virtual Equals 比較可靠
static Equals
operator ==
6、操作符重載必須聲明爲 public static
一些重載操作符成對出現
==重載時不要使用Equals來判斷
7、自定義類型的轉換
public static implicit operator float(Currency value)
public static implicit operator Currency (float value)
轉換時要注意小數精度損失的問題
非繼承關係的類類型也可以用上述方法轉換