Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从类的实例重写方法_C# - Fatal编程技术网

C# 从类的实例重写方法

C# 从类的实例重写方法,c#,C#,我有一个非常简单的问题,但似乎找不到答案,我想知道是否可以从实例类structore重写方法,如下所示: public class A : baseA { public virtual void methodA() { } } public class B : baseB { public void method B() { var ClassA = new A(); } /* Now Is there

我有一个非常简单的问题,但似乎找不到答案,我想知道是否可以从实例类structore重写方法,如下所示:

public class A : baseA    
{
    public virtual void methodA()
    {
    }
}

public class B : baseB    
{
    public void method B()
    {
         var ClassA = new A();
    }

    /* Now Is there some sort of overide like */
    public override methodA()
    {
      //Do stuff
    }
}

而这些类并不是从彼此继承的,这使得它更加困难。
现在,如果这种构造在c中是可能的,那么?

否。如果不从类继承,则不能重写类的行为

重写修饰符是扩展或修改继承的方法、属性、索引器或事件的抽象或虚拟实现所必需的

类B必须从类A继承才能这样做

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

public class B : A
{
    public void methodB()
    {
        var ClassA = new A();
    }

    public override void methodA()
    {
        //Do stuff
    }
}
查看更多详细信息:

重写方法提供从基类继承的成员的新实现。被重写声明重写的方法称为重写基方法。被重写的基方法必须与重写方法具有相同的签名


您不从A继承,那么您希望如何重写它?这是可能的,您需要继承表单A并保留返回类型,在本例中为void。你在代码中试过吗?如果你问的是变量ClassA,你就不能重写methodA。@Wojciech Szabowicz-这回答了你的问题吗?另外,如果你解释一下你想要实现的目标,我们可以以不同的方式帮助你,这些类不会相互继承,这会让事情变得更加困难,所以你写的基本上是正确的,但不是在这个概念中,我对如何使用策略模式感到担忧。@WojciechSzabowicz-如果不了解您所面临的实际问题,就无法给出任何反馈。。。