抽象方法可以有任意数量的类型参数吗?

use*_*481 0 c# inheritance abstract-class types abstraction

我有一个抽象类,我想让派生类不仅定义值类型,还要让它们定义它们有多少个值类型。然后我想要求他们为每种类型设置 getter/setter:

public abstract class A<T1, T2, ..., TN>
{
    // Getters
    public abstract T1 GetValue();
    public abstract T2 GetValue();
    ...
    public abstract TN GetValue();
    // Setters
    public abstract void SetValue(T1 newVal);
    public abstract void SetValue(T2 newVal);
    ...
    public abstract void SetValue(TN newVal);
}
Run Code Online (Sandbox Code Playgroud)

然后从 A 派生的类可以拥有任意数量的值,只要它们提供对它们的访问。这在c#中可能吗?或者类似的东西?

Dan*_*ite 5

不可以。它们必须显式定义,因为编译器必须弄清楚如何处理要构建到程序集中的类型。

您可以通过代码生成器获得类似的效果。