泛型类型接口中的枚举返回函数出错
本文关键字:返回 函数 出错 枚举 接口 泛型类型 | 更新日期: 2023-09-27 18:34:19
我认为代码说的不仅仅是完整的描述:
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 需要类型参数
我应该如何在界面中定义原型才能没有错误?
正如错误所暗示的那样,Bank
类需要您尚未提供的类型参数。您可以选择T
类型,例如
Bank<string>.EType Type { get; }
但这可能不是你想要的,因为这会破坏首先使Bank
通用的目的。
Bank<int>.EType
和Bank<string>.EType
的类型是不同的类型,无法进行比较,因此应将其移动到非泛型类或顶层:
public abstract class Bank
{
public enum EType { Int, Gm, User };
}
public abstract class Bank<T> : Bank
{
}