2
從下面的代碼我想知道 MyMethod2()和MyMethod3()之間有什麼區別。 爲什麼.net提供的不提供編譯錯誤,因爲沒有提到新的關鍵字或換句話說,爲什麼.net提供了新的關鍵字,如果兩個實現都是相同的。C#中新修飾符的真正意義是什麼
public class MyBase
{
public virtual void MyMethod2()
{
//do something
}
public virtual void MyMethod3()
{
//do something
}
}
public class MyDerived :MyBase
{
public void MyMethod2()
{
base.MyMethod2();
}
public new void MyMethod3()
{
base.MyMethod3();
}
}
static void Main(string[] args)
{
MyBase myClass = new MyDerived();
myClass.MyMethod2(); //calls base class
myClass.MyMethod3(); //calls base class
}
嘗試使用非虛擬方法 - 這就是技巧開始的地方。 – 2011-08-31 23:06:55
此處'new'的_only_效果是爲了抑制隱藏警告。 –