重写函数而不创建新的 class C#

Override function without creating new class C#

我有以下场景:

public abstract class SomeClass
{
    public virtual Foo()
    {
        //do stuff
    }
}

我把这个 class 存储在另一个 class

SomeClass InstanceOfTheClass { get; set; }

如何只覆盖 SomeClass 中的函数 Foo 而无需创建继承自 SomeClass 的新 class 然后覆盖该函数?

不可能。

The virtual keyword is used to modify a method, property, indexer, or event declaration and allow for it to be overridden in a derived class.

此外,SomeClass 是抽象的,无论如何您都无法创建它的实例 =/

如果它只是您想要复制的行为,您可以定义一个接口 IFoo 并在您的 class.

中实现它