返回首页

我正在写一,编译器吐了一些错误,没有直接传达给我的,枚举不能使用泛型约束。我从我的调查以下:
这是一个从{A2}的摘录。枚举是值类型,是没有办法作为一个约束,你可以指定的System.ValueType,按照规范,。但如果你想指定一个非引用类型为[主]约束,结构可用于。

private void Method<t> where T : struct

没有保证,我们的通用方法,将不接受其他值类型,除了枚举,我们不支持我们的功能。
在调查过程中,我是非常惊讶地知道,数值类型如int,浮等,在C#中的结构。不远处的事实,他们是值类型,但很有意思知道,他们被宣布为:{C}
类似的事情,其他数值类型。鉴于一个枚举[{A3}],虽然值类型,声明为抽象类派生,从不同的是int或float System.ValueTypes的。最终的结果是,枚举是值类型,但我不知在声明它们的方式。
无论如何,这个问题仍然悬而未决 - 为什么枚举不能作为约束,而只是说,枚举不能作为约束规范是不能令人满意的。
我不知道是否有任何其他的方式来解决我的情况。网络空间的开放提问!
P.S.通过泛型类型的约束规范,请参阅第25.7。{S1}

回答

评论会员:a 时间:2