C# 操作符學(xué)習(xí)的一些總結(jié)
C# 操作符學(xué)習(xí)的一些總結(jié):C# 操作符都有什么分類呢?C# 操作符的各自的用法是什么呢?讓我們開始我們的講解:
算術(shù): + - * / %
邏輯: & | ^ ~ && || !
字符串連接: +
自加, 自減: ++ --
移位:<< >>
比較: == != < ><= >=
賦值: = += -= *= /= %= &= |= ^= <<= >>=
取指: []
類型: sizeof is typeof as
溢出異常: checked unchecked
Null coalescing operator: ??
◆C# 操作符之is
檢查當(dāng)前的對象是否兼容要檢查的類型,即是否是這個類型或是否繼承自這個類型
- int i = 10;
- if (i is object)
- {
- Console.WriteLine(“i is an object”);
- }
◆C# 操作符之a(chǎn)s
顯式類型轉(zhuǎn)化,如果類型不兼容,將返回null
- object o1 = “Some String”;
- object o2 = 5;
- string s1 = o1 as string; // s1 = “Some String”
- string s2 = o2 as string; // s2 = null
typeof
返回System.Type類型
◆C# 操作符之Nullable Types and Operators:?
在C#里一個值類型的變量不可能是Null的,他包含了一個值類型的類型本身。這就是為什么我們管值類型叫做值類型。
但是很多情況下會有問題。可以定義一個列的數(shù)據(jù)類型是32bit的整型數(shù)而對應(yīng)FCL中的Int32類型。但是,這一列在數(shù)
據(jù)庫中暗示著可能為空,就意味著這一列的數(shù)據(jù)為空是可以接受的。但是使用.NET Framework 來操作數(shù)據(jù)庫中的數(shù)據(jù)
是很困難的因?yàn)镃LR不允許int32 的值為空的這一種表現(xiàn)形式。
為了改進(jìn)這個形式,微軟增加了一個Nullable類型的變量在CLR中。
- Int32? a = 5;
- Int32? b = null;
- Int32? c = (Int32)a;
- Double? d = 5;
- Double? e = b;
- a++;//a = 6
- b = -b;//b = null
- a = a + 3; // a = 9
- b = b * 3; // b = null;
對于(+ ++ = == ! ~) 一元的 如果開始null,結(jié)果還是null
(+ ++ = == ! ~) 一元的 如果開始null,結(jié)果還是null
(+ - * / % & | ^ << >>) 二元的,一個是null,另一個也是null
( == !=). =運(yùn)算符,如果操作數(shù)都是null的話,那么他們相等。如果一個是null,那么不想等。如果都不是null,那么比較數(shù)值大小再返回是否相等。
(< > <= >=)比較運(yùn)算符,如果一個是null,返回false。如果都不是null,那么比較數(shù)值大小。再返回。
◆C# 操作符之??
需要兩個操作數(shù)。如果左面的操作數(shù)不為null,那么返回左面的操作數(shù)。如果左邊的操作符為空的話,那么返回右邊的操作符.
??操作很方便,可以用來設(shè)置變量的初始值。
- Int32? b = null;
- Int32? x = b ?? 123;
C# 操作符學(xué)習(xí)的一些總結(jié)就向你介紹到這里,希望對你了解和學(xué)習(xí)C# 操作符有所幫助。
【編輯推薦】