C#或VB.NET - 迭代所有公共枚举

She*_*vek 11 c# vb.net iteration enums

我们的源代码中有一个通用组件,它包含一个非常大的应用程序的所有枚举(大约300!).

有没有办法,使用C#或VB.NET,迭代所有这些,以便对每一个执行一个动作?

这个问题如何遍历在.NET类中的所有"公共字符串"性质差不多相关,但我处理的枚举是各类型的混合

Luk*_*keH 17

沿着这些方向的东西?

var query = Assembly.GetExecutingAssembly()
                    .GetTypes()
                    .Where(t => t.IsEnum && t.IsPublic);

foreach (Type t in query)
{
    Console.WriteLine(t);
}
Run Code Online (Sandbox Code Playgroud)