我能否在Intellisense中按顺序排列枚举值?

23

我有一个包含5个成员的枚举类型。是否可能告诉 IntelliSense 按我想要的方式对它们进行排序?

public enum numbers
{
    zero,
    one,
    two,
    three,
    four
}

Intellisense 显示(在 alpha 中):

four
one
three
two
zero
4个回答

14

不行。但是Visual Studio团队已经考虑了这个建议,尽管不完全符合您的要求。但是,这是一个开始。

您可以在@sepster提供的链接上进行投票:

https://developercommunity2.visualstudio.com/t/Intellisense-display-enums-by-numeric-or/871057?space=8&entry=suggestion


编辑:Microsoft Connect已经停用。将此留在此处以供参考。

请在此处查看Microsoft Connect的响应http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=419602

我已将您的要求添加为该网站上的评论。


2
很遗憾,他们没有考虑像让你在声明上放置一个属性来指示排序顺序(也许是按字母顺序、值(例如与枚举成员相关联的基础数值)等,或许还有其他一些)。 - Jason Down
Jason,我已将您的建议添加为注释。 - bobbyalex
这个建议有任何进展吗?链接已失效(这并不奇怪,因为它已经超过6年了)。 - BVernon
1
在新的社区网站上,@bobbyalex,我们找不到您链接的原始请求。但是我们找到了这个值得我们所有人投票的请求![https://developercommunity2.visualstudio.com/t/Intellisense-display-enums-by-numeric-or/871057?space=8&entry=suggestion] - Sepster
@Sepster 同意并完成,但我担心的是,尽管大多数人都会为这样的功能而疯狂,但它可能永远无法获得足够的设计投票。 - ridilculous
显示剩余5条评论

9

我认为唯一的方法是做类似于以下操作:

public enum numbers
{
    num_00,
    num_01,
    num_02,
    num_03,
    num_04
}

8
据我所知,你不能这样做。Intellisense会按字母顺序排列它们。

3

如果你使用这种枚举声明方式,Intellisense将按照第一个字符排序。

不同类型的声明是指你可以像这样开始枚举: _0 _1 _2等等,其中_将具有相同的特权,然后使用0、1、2等来重新排序。


你是在暗示不同类型的声明吗?实际上在我的代码中,我为它们分配了值,但我在智能感知中看到了相同的内容。 - TheSean
通过不同类型的声明,我指的是您可以像这样开始枚举: _0 _1 _2 就像这样,其中_将具有相同的特权,然后使用0 1 2等来重新排序。 - Meetu Choudhary
这是一个不错的方法。你可以像这样做:枚举 MyPermissionLevel { _00_basic, _01_standard, _02_power_User, _03_advanced },它会在 Intellisense 中按顺序显示,并且还能指示枚举中排序顺序的重要性(如果你像这样做 if user.PermissionLevel >= PermissionLevel._02_power_user 就很有用)。 - J.T. Taylor

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