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至少不允許使用引用類型。

原作者:
...