c is和as的區別

2022-04-08 13:52:41 字數 1263 閱讀 4972

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

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

system.boolean b1 = (o is system.object);//b1 為true

system.boolean b2 = (o is employee);//b2為false

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

if(o is employee) 

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

employee e = o as employee;

if(e != null)

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

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

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

system.boolean b1 = (o is system.object);//b1 為true

system.boolean b2 = (o is employee);//b2為false

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

if(o is employee) 

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

employee e = o as employee;

if(e != null)

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

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操作符永遠不會丟擲異常。如下 o issystem.object b1 為true sy...

C is 和 as的用法

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