c as is 型別轉換

2021-04-19 19:46:59 字數 788 閱讀 3299

在資料型別轉換中,c#相對其它語言來說是比較嚴格的,要求顯式進行資料轉化。

為了操作方便,c#也提供了一種is操作符進行轉換,十分方便,它自動檢查時局是否和型別相容,並返回結果。而且它不會丟擲異常。如果物件引用為null,則is總返回false。

if(cls1 

isclass2) 

else

system.console.writeline(

"error 2!");

平時自己也多用這種方式來做型別轉化的,但今天看了個文章,對比了另外一種方式,as操作符進行轉換,才知道as比is可以稍微地提高效能的。

class2 cls2 

=cls1 

asclass2;

if(cls2

!=null

)system.console.writeline("ok

");else

system.console.writeline(

"error!");

as稍微不同,它檢查引用物件是否相容,如果不相容則返回null,因此需要做null的判斷。

對比兩種方式,is需要做兩次物件的型別檢查,而as需要做一次物件型別檢查,再加一次null的檢查,而null檢查開銷比物件型別檢查少。相對as的方法效率高些。

原帖:http://www.cnblogs.com/shengel/archive/2007/03/21/683217.html

c as is 型別轉換

在資料型別轉換中,c 相對其它語言來說是比較嚴格的,要求顯式進行資料轉化。為了操作方便,c 也提供了一種is操作符進行轉換,十分方便,它自動檢查時局是否和型別相容,並返回結果。而且它不會丟擲異常。如果物件引用為null,則is總返回false。if cls1 isclass2 else system...

c as is 型別轉換

在資料型別轉換中,c 相對其它語言來說是比較嚴格的,要求顯式進行資料轉化。為了操作方便,c 也提供了一種is操作符進行轉換,十分方便,它自動檢查時局是否和型別相容,並返回結果。而且它不會丟擲異常。如果物件引用為null,則is總返回false。if cls1 is class2 else syste...

c as is 型別轉換

在資料型別轉換中,c 相對其它語言來說是比較嚴格的,要求顯式進行資料轉化。為了操作方便,c 也提供了一種is操作符進行轉換,十分方便,它自動檢查時局是否和型別相容,並返回結果。而且它不會丟擲異常。如果物件引用為null,則is總返回false。if cls1 isclass2 class2 cls2...