【问题标题】:C# Interface with Enum Type Parameter带有枚举类型参数的 C# 接口
【发布时间】:2018-07-15 00:41:37
【问题描述】:

是否可以将枚举作为接口的类型参数传递,或者有什么方法可以用不同的方式实现相同的功能?

例如

public interface IServiceResponse<R, enumServiceID> {}

提前致谢。

【问题讨论】:

标签: c# .net interface


【解决方案1】:

您正在声明接口,因此类型参数是类型的符号表示,而不是实际的具体类型。您可以放置​​一个您希望为枚举类型(例如 TEnum)的类型参数,然后将其限制为值类型(其中 TEnum : struct),但不幸的是,您不能将其限制为枚举。完成此操作后,您可以声明一个类,该类实现了具有具体枚举类型的接口:

public class MyServiceResponse : IServiceResponse<MyRType, EnumServiceId> {  }

【讨论】:

  • 值得注意:C# 7.3 支持where T : Enum 约束。
  • 哈利路亚。这些年来,我已经默默地要求了很多次。谢谢你告诉我!
  • @BJMyers 最后,很高兴得知这一点,早就该知道了。现在我们需要的是“数字”类型约束......
猜你喜欢
  • 1970-01-01
  • 2020-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-09
  • 1970-01-01
  • 1970-01-01
  • 2011-09-17
相关资源
最近更新 更多