这个问题不是很清楚,每个答案似乎都有主观性,所以这是我的看法:
- 当我们有一个需要唯一
enum
的类时,我们可以在同一个类中声明它,它将在所有人实例中都可访问。
namespace MyApp.Models
{
public class Person
{
public AgeGroup ageGroup;
public enum AgeGroup { Baby, Child, Teen, Adult, Senior}
}
}
声明:
using MyApp.Models;
(...)
Person p = new();
p.ageGroup = Person.AgeGroup.Baby;
但您可以看到,使用Person.AgeGroup.Baby
有点冗长。
- 或者,我们可以在与要使用的类相同的命名空间中声明
enum
,如果它是唯一的,则最好放在同一个文件中的类下方,但这完全是可选的。
该方法使枚举可以在其宣布的命名空间中随处使用。
namespace MyApp.Models
{
public class Person
{
public AgeGroup ageGroup;
}
public enum AgeGroup { Baby, Child, Teen, Adult, Senior}
}
声明:
using MyApp.Models;
(...)
Person p = new();
p.ageGroup = AgeGroup.Baby;
请注意,命名空间与Person类相同,因此不需要额外的命名空间。
当在您的项目(s)上“全面使用”枚举时,可以在更可访问的命名空间中声明它,例如您的主要项目命名空间:
namespace MyApp
{
public enum Mode {A, B}
}
声明:
namespace MyApp.ViewModels
{
public class Test
{
Mode mode = Mode.A;
}
}
请注意,在上一个示例中,我声明了MyApp命名空间,但我在子/嵌套命名空间MyApp.ViewModels中使用了它。
或者将枚举声明在专门用于辅助程序的命名空间中,我使用此命名空间来声明扩展方法、全局枚举和任何其他静态辅助程序。
namespace MyApp.Helpers
{
public enum Mode { A, B}
}
声明:
using MyApp.Helpers;
namespace MyApp
{
public class Test
{
Mode mode = Mode.A;
}
}