關於型別的判斷和轉換有is和
as這2個操作符。具體區別和用法如下
is就是處於對型別的判斷。返回
true
和false
。如果乙個物件是某個型別或是其父型別的話就返回為
true
,否則的話就會返回為
false
。另外is
操作符永遠不會丟擲異常。**如下:
system.boolean b1 = (o
issystem.object);
//b1
為true
system.boolean b2 = (o
isemployee);
//b2
為false
如果物件引用為
null
,那麼is
操作符總是返回為
false
,因為沒有物件可以檢查其型別,就像下面**一樣 if
(o is
employee)
在上面**中,其實
clr對物件型別檢查了兩次:
is操作首先檢查
o所引用的物件是否和
employee
型別相容。如果相容,那麼在
if語句內
clr在執行轉換時又會檢查
o是否為乙個
employee
引用。這種程式設計正規化十分常見,
c#便提供了一種新的型別檢查,轉換方式。即
as操作符
,他可以在簡化**的同時,提高效能。**如下:
employee e = o
asemployee;
if(e !=
null)
這種as
操作即便等同於上面**,同時只進行了
1次的型別檢查,所以提高了效能。如果型別相同就返回乙個非空的引用,否則就返回乙個空引用。
c 中 is 和 as 關鍵字的區別
is 關鍵字用於檢查物件是否與給定型別相容。注意了,這裡的 is並不是 是 的意思,而是 相容 也就是說,如果被檢查物件能夠強制轉換成給定型別並不發生異常,那麼表示它們型別相容。如果所提供的表示式非空,並且所提供的物件可以強制轉換為所提供的型別而不會導致引發異常,則 is表示式的計算結果將是 tru...
c 中 is 和 as 關鍵字的區別
is 關鍵字用於檢查物件是否與給定型別相容。注意了,這裡的 is並不是 是 的意思,而是 相容 也就是說,如果被檢查物件能夠強制轉換成給定型別並不發生異常,那麼表示它們型別相容。如果所提供的表示式非空,並且所提供的物件可以強制轉換為所提供的型別而不會導致引發異常,則 is表示式的計算結果將是 tru...
C 中as和is關鍵字
一.as 運算子用於在相容的引用型別之間執行某些型別的轉換。例如 static void main string args else console.readline 結果 not a string hello not a string class base class derived base c...