is和as 都是用於型別轉換的操作。
但是這兩個有什麼區別呢?
簡單的來說 is 判斷成立則返回true,反之返回false。as 成立則返回要轉換的物件,不成立則返回null。
下面掏一手**來說明一下。
using system;using system.collections.generic;
using system.io;
using system.linq;
using system.text;
using system.threading.tasks;
namespace isandastest
}public class father
public class child:father
public class mother
}
using system;有一點我要強調一下就是子類可以轉換父類,但是父類不能轉換為子類,這就比如現在這個社會。你父母的東西是你的,但是你的東西還是你的一樣。using system.collections.generic;
using system.io;
using system.linq;
using system.text;
using system.threading.tasks;
namespace isandastest
}public class father
public class child:father
public class mother
}
father f2 = new father();第二句**轉換的時候就會失敗了。因為父類不能強轉換為子類。father不能轉換為child,但是我們如果用as進行轉換的話為得到乙個null的c1物件。child c1 = (child)f2;
總結 由他們返回值就可以簡單的知道他們的用法。
is 主要用於型別推斷,而不需要實際的轉換。
as 主要用於真正的型別轉換。
世上本來沒有路,走的人多了,就是路了。世上也沒有絕對的真理,你成功了,你就是真理。
3 C 語言知識點總結
1.封裝 將記錄包起來讓其自己去幹。2.抽象 記錄一下這些傢伙的屬性,比如都是人。3.繼承 生下來的兒子跟父親乙個鳥樣。4.多型 兒子除了含有父親的內容外,還有自己的特徵。5.標頭檔案中不加 h 6.加上命名空間 using namespace std 後期考慮到c 主要用在大型程式設計,可以不加,...
C語言知識點 3
1.指標與陣列 用陣列指標遍歷陣列每個元素,指標當作陣列來用,int ages 5 int p p ages p ages 0 p 0 p 2 ages 2 p 2 指標變數的p 1究竟加多少,取決於指標的型別,另外指標指向的是陣列的首元素,並不是指向陣列,這也和指標型別有關,指標是int型別,只能...
C 刷題知識點總結3
int p 10 p是乙個陣列 含10個int元素 int p 10 p是乙個指標 指向乙個有10個int的陣列 2.c primer 中文版p187 190關於引數傳遞,指出只有傳值和傳引用 傳指標包含在傳值裡 一般來說,c裡面有兩種傳遞 1 值傳遞 2 指標傳遞 嚴格來看,只有一種傳遞,值傳遞,...