others - 在C#中,为什么对泛型enum扩展方法使用"where T: struct"?

我已经知道了在C#中使用where T: struct的枚举的泛型扩展方法,也是使用where T: IComparable的另一个方法,例如,在前一种情况下:


public static class EnumExtensionMethods


{


 public static string Description<T>(this T enumValue) where T : struct


 {


 // ...


 }


}



我不清楚为什么约束要求类型T必须是一个struct,希望它是where T : Enum,谁可以解释一下?

时间: 原作者:

我怀疑你正在查看一些在C# 7.3 Enum之前编写的代码,可以使用或约束一个泛型类型参数。


public static string GetDescription<T>(this T enumValue) where T : struct, Enum


{


 // ...


}



原作者:

将方法约束到Enum的能力在C#中相对较新,使用struct至少不允许使用引用类型。

原作者:
...