C#重写对象声明中的方法,如Java中的方法

C#重写对象声明中的方法,如Java中的方法,java,c#,declaration,overriding,Java,C#,Declaration,Overriding,但我一直在用Java编程,所以我知道可以在对象的实例化中重写方法 private MyObject myObject=new MyObject(){ @Override public void myMethod(int args){ . . . } } 有人能告诉我怎么用C#。。谢谢与Java不同,J

但我一直在用Java编程,所以我知道可以在对象的实例化中重写方法

        private MyObject myObject=new MyObject(){
             @Override
             public void myMethod(int args){
               .
               .
               .
             }
      }

有人能告诉我怎么用C#。。谢谢

与Java不同,Java中所有实例方法都是虚拟的,在C#中,您必须明确地输入
virtual
关键字:

在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#不允许在本地实现类,因此您必须显式声明类(
MyOverrideObject
,在上面的代码中),然后使用:

   // Finally, you can assign an overriden class to the private field
   private MyObject myObject = new MyOverridenObject();
所以我知道你们可以重写对象声明中的方法

这不是对象声明,而是类实例化。而这一特性在C#中并不存在

因此,只能重写类声明上的多态方法:

public class A 
{
    public virtual void DoStuff() {}
}

public class B : A 
{
    public override void DoStuff() {}
}
public class A 
{
    public virtual void DoStuff() {}
}

public class B : A 
{
    public override void DoStuff() {}
}