枚举返回函数在泛型类型的接口中出错

时间:2014-12-14 16:39:36

标签: c# generics interface enums

我认为代码不仅仅是一个完整的描述:

public interface IBank
{
    Bank.EType Type { get; }
}


public abstract Bank<T>: ...
{
    public enum EType { Int, Gm, User };

    private EType _type;

    public EType Type { get { return _type; } }
}

我收到错误:

  

使用泛型类型PcgTools.Mmodel.Common.Synth.Bank需要类型参数

如何在界面中定义原型以避免错误?

1 个答案:

答案 0 :(得分:4)

如错误所示,Bank类需要您未提供的类型参数。您可以选择T的类型,例如

Bank<string>.EType Type { get; }

但这可能不是你想要的,因为这会破坏首先使Bank通用的目的。

类型Bank<int>.ETypeBank<string>.EType是不同的类型,无法进行比较,因此您应将其移至非泛型类或顶级:

public abstract class Bank
{
    public enum EType { Int, Gm, User };
}

public abstract class Bank<T> : Bank
{
}