在C#或VB.NET枚举中减少值

3

仅出于兴趣而非实际需求... 在C#或VB.NET中是否可能拥有自动下降枚举?

public enum testEnum
{
    this = -1,
    that,
    other,
}

所以,that = -2,other = -3。

我相信唯一的方法是特定地分配“that”和“other”,但我想知道是否有自动方式来完成它。

编辑

明确一下,我只是在谈论值的自动分配,而不是枚举减少的实际值。


我不相信有一种方法可以做到这一点。而且真的没有一个好的理由想要这样做。希望如果你曾经发现自己想要这种奇怪的行为,你可以重新设计需要它的系统部分。 - Thomas
1个回答

8
不,这是不可能的。如果您希望这样做,必须声明值,或者反转声明:
public enum testEnum
{
    other = -3,
    that,
    @this
}

往往那些显而易见的事情却从未显而易见!谢谢Oded。 - freefaller
从技术上讲,这不是按照用户指定的减少而是增加了,尽管我想这符合他的需求,因为他可能想要一个负值的枚举。但这样做的缺点是你必须维护并手动计算列表中有多少项。 - Thomas
@freefaller - 嗯,我认为在我的例子中,“that”是“-2”并不明显。 - Oded
两个好观点,@Thomas和Oded。我从技术角度很喜欢它,但同意它不明显也不易于维护。正如我所说,这更多是出于兴趣而非实际应用。 - freefaller
1
@freefaller - 由于this是C#中的保留关键字,因此不能用作标识符。您可以在这样的关键字前面使用@,以将其转换为有效的标识符名称。请参见MSDN:http://msdn.microsoft.com/en-us/library/x53a06bb.aspx - Oded
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接