關於型別的判斷和轉換有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操作符永遠不會丟擲異常...