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

-8 c# oop generics delegates method-signature

我在Common我正在处理的项目的类中有一个方法,其定义如下:

public static void PopulateSoapBody<TEnum>(Object obj, string[] aMessage) where TEnum : struct,  IComparable, IFormattable, IConvertible
Run Code Online (Sandbox Code Playgroud)

并且它被调用(从几个不同的类定义他们自己的枚举类型,并填充他们自己的soap体类):

DCSSCardUpdateType wsSoapBody = new DCSSCardUpdateType();
Common.PopulateSoapBody<CardPinRequest>(wsSoapBody, aMessage);
Run Code Online (Sandbox Code Playgroud)

哪里

CardPINRequest是在调用类中定义的枚举类型

wsSoapBody是Web服务中定义的类类型

aMessage是一个字符串数组(用于填充wsSoapBody)

enum类型传递给方法时会调用什么,限制可能的类型(我想阅读它以更好地理解如何使用这样的特性)

Ode*_*ded 6

认为您正在寻找的术语是泛型类型约束.

从链接的MSDN文章:

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