VisualStudio中是否有方法检查c#项目中定义的每个枚举的所有值是否都指定了相应的基类型值?

VisualStudio中是否有方法检查c#项目中定义的每个枚举的所有值是否都指定了相应的基类型值?,c#,visual-studio,enums,C#,Visual Studio,Enums,这是一个奇怪的问题,但这只是一个有效检查的问题。正如标题所述,我想快速检查特定项目中的所有枚举是否都指定了它们的所有基类型值。例如,我可能有: public enum Animal { Bird = 0, Cat = 1, Dog = 2 } 此枚举已指定其int基类型值。如果是: public enum Animal { Bird, Cat, Dog } 那么就不会指定基值 是否有一种方法可以自动检查所有枚举是否都是这种情况,或者通过某个Vi

这是一个奇怪的问题,但这只是一个有效检查的问题。正如标题所述,我想快速检查特定项目中的所有枚举是否都指定了它们的所有基类型值。例如,我可能有:

public enum Animal
{
    Bird = 0,
    Cat = 1,
    Dog = 2
}
此枚举已指定其int基类型值。如果是:

public enum Animal
{
    Bird,
    Cat,
    Dog
}
那么就不会指定基值


是否有一种方法可以自动检查所有枚举是否都是这种情况,或者通过某个Visual Studio搜索工具或其他命令快速调出项目中的所有枚举,然后手动检查是否是这种情况?我想前一个选项是不可能的,所以我想问题可以归结为:如何在我的Visual Studio窗口中调出所有带有枚举的类?

我所知道的实现这一点的唯一方法是使用代码分析器,例如带有自定义规则的fx cop,或者Roslyn上的静态分析器。这两种选择都需要付出巨大的努力


关于你问题的第二部分:

如何在VisualStudio窗口中调出所有带有枚举的类

这会让你得到你想要的第二个选择(稍微改变一个假阳性)

从主菜单:编辑>查找和替换>在文件中查找

  • 查找内容:“枚举”(注意空格)
  • 查看:整个解决方案

默认情况下,第一个枚举项的值为0。第二个值为1,依此类推。这始终是默认值。是否有特殊问题需要您知道枚举是否已显式指定值而不是隐式指定值(即从0开始连续)?我被告知枚举应尝试指定其值,以便在有人添加值时,自动排序不会更改其他值。所以我只需要检查并确保所有枚举都指定了它们的值。啊,好的,我可能会传递第一部分。谢谢你的第二部分,很好用。