C#如何继承具有不同数量所需参数的泛型方法
本文关键字:泛型方法 参数 何继承 继承 | 更新日期: 2023-09-27 18:27:34
在C#中继承带有泛型参数的方法时,处理子类中实际不需要参数的情况的最佳方法是什么?例如,我想做这样的事情:
public abstract class Parent {
protected abstract void Load<T>(T param);
}
public class Child : Parent {
protected override void Load() {}
}
如果这样的事情是不可能的,在实际不需要的情况下,是否有一个建议的标准实践来指定t?我只是设置为类似bool的值而忽略该值吗?
child.Load<bool>(false);
重写函数时,必须保持相同数量(和类型)的参数。您可以重载父方法,但不能覆盖它:
public abstract class Parent {
protected abstract void Load<T>(T param);
}
public class Child : Parent {
protected void Load() {}
protected override void Load<T>(T param) { // do nothing? }
}
然而,这对我来说是一种代码味道-使Load<T>
抽象本质上告诉实现者,他们必须实现这个方法,但这个类认为不需要这样做。如果Parent
中的代码期望Load<T>
被正确地重写;它如何知道Child
实现了Load
的一些其他风格?