在C#中使枚举支持泛型约束

偶尔看到的一篇文章:Generic constraints for enums and delegates

大致内容是:在C#语言中,是不支持枚举的泛型约束的;但是,这一限制在cli上并不存在,通过ildasm/ilasm修改C#生成的dll,可以达到使枚举支持泛型约束的目的。

并且作者在GoogleCode上建了一个开源项目实现这一功能:UnconstrainedMelody Google Code project 

实际上,在C++/CLI和F#中都不存在枚举不支持泛型约束这一限制,用这两个语言编出来的dll在C#中式可以直接调用也可以实现作者的这个功能,并且也更直接。但作者的这个功能的优点在于:用C#编写并调用更加直观,方便后续更改,并且可以支持扩展方法。

当然,最好的方法还是MS放开这一限制(个人感觉这个限制完全没必要),期待后面的C#版本中没有这一限制。

原文地址:https://www.cnblogs.com/TianFang/p/1931555.html