gpt4 book ai didi

c# - 用模板覆盖基类的抽象类

转载 作者:太空宇宙 更新时间:2023-11-03 20:01:31 25 4
gpt4 key购买 nike

我有一个带有模板的基类。在此类中有一个抽象方法,其返回类型为模板中的类型(见下文)。

我希望创建一个新类 Derived,它继承自这个基类,它(如预期的那样)必须“覆盖”该方法。

我的问题是如何声明和实现派生类和“重写”方法?

提前致谢,

家伙。

public abstract class Base<MyType> 
{
protected abstract MyType Foo();
}


public class Derived : Base ?????
{
protected override MyType Foo() ?????
{
return new MyType();
}
}

最佳答案

简单地指定泛型基类的实际类型,例如:

public class Derived : Base<MyType>
{
protected override MyType Foo()
{
// some implementation that returns an instance of type MyType
}
}

MyType 是您要指定的实际类型。

另一种选择是将派生类保持为通用类,例如:

public class Derived<T> : Base<T>
{
protected override T Foo()
{
// some implementation that returns an instance of type T
}
}

关于c# - 用模板覆盖基类的抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27688886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com