C#方法签名 - 限制类型 - 正确的术语是什么?

时间:2015-02-19 11:03:02

标签: c# oop generics delegates method-signature

我在我正在处理的项目的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 类型传递给某个方法时会调用什么,限制可能的类型(我希望阅读它以更好地了解如何使用像这样的特征)

1 个答案:

答案 0 :(得分:6)

认为您正在寻找的术语是generic type constraints

来自链接的MSDN文章:

  

定义泛型类时,可以对实例化类时客户端代码可用于类型参数的类型类型应用限制。如果客户端代码尝试使用约束不允许的类型来实例化您的类,则结果是编译时错误。这些限制称为约束。