一. as
運算子用於在相容的引用型別之間執行某些型別的轉換。例如:
static
void
main(
string
args)
else
}console.readline();
}結果:
not a string
hello
not a string
class
base
}class
derived : base
class
program}}
對於繼承類,允許把子類轉換成父類,但是不可以把父類轉換成子類,不同類之間,值型別不可轉換。
二.is檢查物件是否與給定型別相容。
例如,下面的**可以確定物件是否為 myobject
型別的乙個例項,或者物件是否為從 myobject
派生的乙個型別:
複製**
if (obj is myobject)如果所提供的表示式非空,並且所提供的物件可以強制轉換為所提供的型別而不會導致引發異常,則 is
表示式的計算結果將是 true
。如果已知表示式將始終是 true
或始終是 false
,則 is
關鍵字將導致編譯時警告,但是,通常在執行時才計算型別相容性。
不能過載 is
運算子。
請注意,is
運算子只考慮引用轉換、裝箱轉換和取消裝箱轉換。不考慮其他轉換,如使用者定義的轉換。
在 is
運算子的左側不允許使用匿名方法。lambda 表示式屬於例外。
class
myquicksort
else
console.readline();}}
class
class1
}class
class2:class1
結果:yes
C 中struct關鍵字和class關鍵字的區別
剛開始接觸 c 看到 中有struct關鍵字,還以為是用了結構體,結果後來發現 struct 和 class 一樣都用於類的定義,於是把兩者的差別記錄於此。一句話總結 兩者均可用於定義類,唯一的區別是兩者定義的類的預設訪問許可權有差別。其實比兩者差別更重要的是,我很好奇為什麼 c 中會存在兩個用於定...
C 中this和base關鍵字
this 指的是這個物件本身,主要用於 在定義類時,寫上this.後vs會出現這個類中非靜態的成員,智慧型提示。一般在建構函式中使用,區分欄位和區域性變數 class person 用於在建構函式中呼叫兩乙個建構函式 class person public person string name,in...
this關鍵字和super關鍵字
this關鍵字和super關鍵字都必須放在構造方法的第一行,所有兩個關鍵字不能同時存在,任選其一即可,只需保證子類的所有構造方法呼叫父類的構造方法即可 this關鍵字的應用 this關鍵字用於區分區域性變數和成員變數的同名問題 有this關鍵字的是成員變數,或者是誰呼叫我,訪問的就是誰 this關鍵...