将枚举值作为参数的泛型C#方法
本文关键字:泛型 方法 参数 枚举 | 更新日期: 2023-09-27 18:07:53
可能重复:
创建将T约束为枚举的泛型方法
给定一个只对枚举值进行操作的通用方法
static void <T> method(T enum) where T ?????
{
// do something with enum...
}
如何约束T
,以便只接受枚举值?我尝试过使用struct
,但是这不允许使用可为null的枚举类型调用我的方法。
枚举类型的泛型约束在C#中是不可能的,但在IL中是可能的。看看Jon Skeet的项目Unconstrained Melody,它将允许您将泛型方法约束到枚举。
在C#中不能。出于某种原因,我不知道C#规范明确禁止System.Enum
作为约束。
即便如此,它也不会接受可为null的枚举,因为可为null枚举不是枚举。