我在我正在处理的项目的Common
类中有一个方法,其定义如下:
public static void PopulateSoapBody<TEnum>(Object obj, string[] aMessage) where TEnum : struct, IComparable, IFormattable, IConvertible
并且它被调用(从几个不同的类定义他们自己的枚举类型,并填充他们自己的soap体类):
DCSSCardUpdateType wsSoapBody = new DCSSCardUpdateType();
Common.PopulateSoapBody<CardPinRequest>(wsSoapBody, aMessage);
其中
CardPINRequest 是在调用类
中定义的枚举类型wsSoapBody 是在Web服务中定义的类类型
aMessage 是一个字符串数组(用于填充 wsSoapBody )
将 enum 类型传递给某个方法时会调用什么,限制可能的类型(我希望阅读它以更好地了解如何使用像这样的特征)
答案 0 :(得分:6)
我认为您正在寻找的术语是generic type constraints。
来自链接的MSDN文章:
定义泛型类时,可以对实例化类时客户端代码可用于类型参数的类型类型应用限制。如果客户端代码尝试使用约束不允许的类型来实例化您的类,则结果是编译时错误。这些限制称为约束。