c is和as的區別

2021-08-07 22:20:16 字數 691 閱讀 7824

關於型別的判斷和轉換有is和as這2個操作符。具體區別和用法如下

is就是處於對型別的判斷。返回true和false。如果乙個物件是某個型別或是其父型別的話就返回為true,否則的話就會返回為false。另外is操作符永遠不會丟擲異常。**如下:

=(o 

issystem.object);

//b1 為true

system.boolean b2 

=(o 

isemployee);

//b2為false

如果物件引用為null,那麼is操作符總是返回為false,因為沒有物件可以檢查其型別,就像下面**一樣

(o is

employee) 

在上面**中,其實clr對物件型別檢查了兩次:is操作首先檢查o所引用的物件是否和employee型別相容。如果相容,那麼在if語句內clr在執行轉換時又會檢查o是否為乙個employee引用。這種程式設計正規化十分常見,c#便提供了一種新的型別檢查,轉換方式。即as操作符,他可以在簡化**的同時,提高效能。**如下:

employee e =o 

asemployee;

if(e 

!=null

) 這種as操作即便等同於上面**,同時只進行了1次的型別檢查,所以提高了效能。如果型別相同就返回乙個非空的引用,否則就返回乙個空引用。

參考:《.net框架程式設計》

c is和as的區別

關於型別的判斷和轉換有is和as這2個操作符。具體區別和用法如下 is就是處於對型別的判斷。返回true和false。如果乙個物件是某個型別或是其父型別的話就返回為true,否則的話就會返回為false。另外is操作符永遠不會丟擲異常。如下 system.boolean b1 o is system...

c is和as的區別

關於型別的判斷和轉換有is和as這2個操作符。具體區別和用法如下 is就是處於對型別的判斷。返回true和false。如果乙個物件是某個型別或是其父型別的話就返回為true,否則的話就會返回為false。另外is操作符永遠不會丟擲異常。如下 system.boolean b1 o is system...

C is 和 as的用法

try else else catch exception ex 關於型別的判斷和轉換有is和as這2個操作符。具體區別和用法如下 is就是處於對型別的判斷。返回true和false。如果乙個物件是某個型別或是其父型別的話就返回為true,否則的話就會返回為false。另外is操作符永遠不會丟擲異常...