【发布时间】:2010-11-24 06:11:15
【问题描述】:
我有一个枚举类型,我想为它定义>、<、>= 和<= 运算符。我知道这些运算符是基于枚举类型隐式创建的(根据documentation),但我想明确定义这些运算符(为了清楚起见,为了控制,知道如何做等等...... )
我希望我可以这样做:
public enum SizeType
{
Small = 0,
Medium = 1,
Large = 2,
ExtraLarge = 3
}
public SizeType operator >(SizeType x, SizeType y)
{
}
但这似乎不起作用(“意外令牌”)......这可能吗?似乎应该如此,因为有隐含定义的运算符。有什么建议吗?
【问题讨论】:
-
对于那些不认真阅读问题并至少阅读 cmets 的人,
>, <, >=, and <= operators are implicitly created on the basis of the enumerated type- 所以也许你不需要任何自定义的东西。我编写了整个包装结构,然后意识到没有它也能正常工作。
标签: c# enums operators operator-overloading