C 中的is和as運算子

2021-08-18 08:33:31 字數 1339 閱讀 3161

is運算子

有些型別之間的轉換並不是能夠轉換成功,強制的轉換反而會丟擲一些異常,那麼,可以使用is運算子來檢查轉換是否可以轉換成功。is的語法如下:

variable  is  newtype

如果variable可以通過引用轉換裝箱轉換拆箱轉換的方式轉換為newtype,那麼運算子返回true。

舉例如下:

class animal

class dog : animal

class cat : animal

class program

,animal.weight="

, animal.name, animal.weight);

}console.writeline(i1 is float);

console.writeline(s1 is object);

console.writeline(cat is dog);

console.readkey();}}

執行結果如下:

dog可以轉化為animal型別,animal.name=動物,animal.weight=30

false

true

false

as運算子as和強制轉換運算子比較類似,它不會丟擲異常,如果轉換失敗,as運算子返回null。

需要注意的是as運算子只能用於引用轉換裝箱轉換,as不能用於值型別轉換和使用者自定義轉換

舉例如下:

class animal

class dog : animal

class cat : animal

class program

,animal.weight="

, animal.name, animal.weight);

object v1 = i1 as object; //裝箱

int v2 = v1 as int; //拆箱 會報錯

console.writeline(v1);

console.writeline(s1 as object);

console.readkey();}}

這裡v1 as int;會報錯

C 中 運算子 和 運算子

運算子定義在將可空型別分配給非可空型別時返回的預設值。int?c null 若 c 為 null,則 d 為 1,否則把 c 值賦予 d int d c 1 型別名稱後加問號,如 int?i null double?d null bool?b null 可指定可為 null 的 int double...

C 中的 和 運算子

和 運算子 構串操作符 構串操作符 只能修飾帶引數的巨集的形參,它將實參的字串行 而不是實參代表的值 轉換成字串常量 define string x x x x define text x class x info 巨集引用 int abc 100 string abc text abc 替換結果 ...

C 中的 和 運算子

1.如果左運算元的值不為 null,則 null 合併運算子 返回該值 否則,它會計算右運算元並返回其結果。如果左運算元的計算結果為非 null,則 運算子不會計算其右運算元。2.c 8.0 及更高版本中可使用空合併賦值運算子 該運算子僅在左側運算元的求值結果為 null 時,才將其右側運算元的值賦...