參見《
c#高階程式設計》第四版
is 運算子可以檢查物件是否與特定的型別相容。」相容
」表示物件是該型別,或者派生於該型別。例如,要檢查變數是否與
object
型別相容
:int i = 10;
if (i is
object)
int和從
object
繼承而來的其他
c#資料型別一樣,表示式
i is object
將得到true,
並顯示資訊。 as
運算子用於執行引用型別的顯式型別轉換。如果要轉換的型別與指定的型別相容,轉換就會成功進行;如果型別不相容,
as運算子就會返回值
null
。如下面的**所示,如果
object
引用不指向
string
例項,把
object
引用轉換為
string
就會返回
null:
object o1 = "some string";
object o2 = 5;
string s1 = o1 as
string; // s1 = "some string"
string s2 = o2 as
string; // s2 = null
如果在程式中使用可空型別,就必須考慮
null
值在與各種運算子一起使用時的影響。通常可空型別與一元或二元運算子一起使用時,如果其中乙個運算元或兩個運算元都是
null
,其結果就是
null
。例如:
int? a = null;
int? b = a + 4; // b = null
int? c = a * 5; // c = null
但是在比較可空型別時,只要有乙個運算元是
null,
比較的結果就是
false
。例如:
int? a = null;
int b = -1;
if (a < b)
else
空接合運算子
(??)
為處理可空型別和引用型別時表示
null
值的可能性提供了一種快捷方式。這個運算子放在兩個運算元之間。第乙個運算元必須是乙個可空型別或引用型別,第二個運算元必須與第乙個運算元的型別相同,或者可以隱含地轉換為第乙個運算元的型別。空接合運算子的計算如下:如果第乙個運算元不是
null
,則整個表示式就等於第乙個運算元的值。但如果第乙個運算元是
null
,則整個表示式就等於第二個運算元的值。例如:
int? a = null;
int b;
b = a ?? 10; // b has the value 10
a = 3;
b = a ?? 10; // b has the value 3
如果第二個運算元不能隱含地轉換為第乙個運算元的型別,就生成乙個編譯錯誤。
一些運算子
int a 3 int b a 先把a的值賦給b,a再自增 int c a a先自增,再把值賦給c system.out.println a system.out.println b system.out.println c 結果輸出 535 冪運算,計算2 3 double pow math.po...
一些特殊運算子的理解
1 in eg x in o 檢測o物件是否擁有x屬性 in 運算子 in的左側是字串或者可以轉為字串 右側是物件 可以檢測繼承的屬性 注意的是對陣列檢測的是下標值 2 instanceof 左側是物件,右側是標識物件的類即建構函式 如果左側不是物件則返回false,右側不是函式則丟擲乙個型別錯誤異...
js的一些運算子知識
一.算數運算子 只要 兩邊有任何一邊是字串的時候,那麼就進行字串的鏈結 算數運算子有哪些呢?符號的用法 作為字首的時候先自增 自減在使用 作為字尾的時候先使用在自增 自減 優先順序 先 再 如果想提公升優先順序 使用 四捨五入解決誤差的方法 tofixed n n表示保留幾位小數 例如 var ch...