【发布时间】:2018-07-15 00:41:37
【问题描述】:
是否可以将枚举作为接口的类型参数传递,或者有什么方法可以用不同的方式实现相同的功能?
例如
public interface IServiceResponse<R, enumServiceID> {}
提前致谢。
【问题讨论】:
是否可以将枚举作为接口的类型参数传递,或者有什么方法可以用不同的方式实现相同的功能?
例如
public interface IServiceResponse<R, enumServiceID> {}
提前致谢。
【问题讨论】:
您正在声明接口,因此类型参数是类型的符号表示,而不是实际的具体类型。您可以放置一个您希望为枚举类型(例如 TEnum)的类型参数,然后将其限制为值类型(其中 TEnum : struct),但不幸的是,您不能将其限制为枚举。完成此操作后,您可以声明一个类,该类实现了具有具体枚举类型的接口:
public class MyServiceResponse : IServiceResponse<MyRType, EnumServiceId> { }
【讨论】:
where T : Enum 约束。