,但我在Java中被編程,所以我知道你可以覆蓋對象的實例C#重寫的對象聲明的方法,如在Java中
private MyObject myObject=new MyObject(){
@Override
public void myMethod(int args){
.
.
.
}
}
方法可有人告訴我如何做到這一點在C#中,請..由於
,但我在Java中被編程,所以我知道你可以覆蓋對象的實例C#重寫的對象聲明的方法,如在Java中
private MyObject myObject=new MyObject(){
@Override
public void myMethod(int args){
.
.
.
}
}
方法可有人告訴我如何做到這一點在C#中,請..由於
所以我知道你可以覆蓋對象的聲明
方法這是不是對象聲明但類的實例。而這個特性在C#中不存在。
因此,你只能覆蓋在類聲明多態性方法:
public class A
{
public virtual void DoStuff() {}
}
public class B : A
{
public override void DoStuff() {}
}
與Java所有實例方法虛擬的,在C#中,你必須把virtual
關鍵字明確:
public class MyObject {
...
// in order to be overriden in a derived class, base method should be
// explictly declared as virtual or abstract
public virtual void myMethod(int args){
...
}
...
}
在C#override
是關鍵字爲好,不只是一個屬性:
// class can't be declared locally, but explictly
public class MyOverridenObject: MyObject {
...
// override is a mandatory keyword in the context
public override void myMethod(int args){
...
}
}
最後,C#不允許實現類本地,所以你必須聲明類明確 (在上面的代碼MyOverridenObject
),然後使用:
// Finally, you can assign an overriden class to the private field
private MyObject myObject = new MyOverridenObject();