C#虛方法的作用?
簡單的說,虛方法就是可以被子類重寫的方法,如果子類重寫了虛方法,那么運行時將使用重寫后的邏輯,如果沒有重寫,則使用父類中虛方法的邏輯。
把一個基類函數聲明為virtual,該函數就可以在派生類中重寫了:
class MyBaseClass
{
public virtual string VirtualMethod()
{
return This method is virtual and defined in MyBaseClass;
}
}
也可以把屬性聲明為virtual。對于虛屬性或重寫屬性,語法與非虛屬性是相同的,但要在定義中加上關鍵字virtual,其語法如下所示:
public virtual string ForeName
{
get { return foreName; }
set { foreName = value; }
}
private string foreName;
為了簡單起見,下面的討論將主要集中于方法,但其規則也適用于屬性。
C#中虛函數的概念與標準OOP概念相同:可以在派生類中重寫虛函數。在調用方法時,會調用對象類型的合適方法。在C#中,函數在默認情況下不是虛擬的,但(除了構造函數以外)可以顯式地聲明為virtual。這遵循C++的方式,即從性能的角度來看,除非顯式指定,否則函數就不是虛擬的。而在Java中,所有的函數都是虛擬的。但C#的語法與C++的語法不同,因為C#要求在派生類的函數重寫另一個函數時,要使用override關鍵字顯式聲明:
class MyDerivedClass : MyBaseClass
{
public override string VirtualMethod()
{
return This method is an override defined in MyDerivedClass;
}
}
方法重寫的語法避免了C++中很容易發生的潛在運行錯誤:當派生類的方法簽名無意中與基類版本略有差別時,派生類方法就不能重寫基類方法了。在C#中,這會出現一個編譯錯誤,因為編譯器會認為函數已標記為override,但沒有重寫它的基類方法。
成員字段和靜態函數都不能聲明為virtual,因為這個概念只對類中的實例函數成員有意義。
誅仙手游萬劍一陣法怎么搭配
誅仙手游萬劍一 誅仙手游萬劍一陣法搭配,這款游戲自上線以來深受廣大玩家們的喜愛,小骨為您帶來有關誅仙手游萬劍一 誅仙手游萬劍一陣法搭配的相關攻略,小伙伴們快來看看吧!
誅仙手游萬劍一靈陣搭配,萬劍一陣法推薦,誅仙手游萬劍一陣法用哪個好,說到萬劍一陣法的運用,大多數玩家會選擇第一種,但是很多情況下我們也可以試試其他的陣法,比如說下面的第二種也很適合使用哦。
99%的人都選擇了這個陣容,看似道法很高,但是其中有三萬的真氣屬性,煉靈情緣里也有兩條真氣屬性,除了鬼王這根本就是虛屬性,一點用處沒有,而且煉靈洗完之后,這套陣容攻擊大概在1.6萬左右,防御在1.2萬左右。
這個是我現在用的,所有屬性中沒有一天多余的虛屬性,煉靈完畢1.8萬攻擊,1.6萬防御!完全實打實的實用屬性。
