我最近发现自己需要(是的,需要)在 C# 代码中定义长得离谱的 switch
语句和 enum
声明,但我想知道人们的感受是将它们分成逻辑小节的最佳方式。在我的情况下,枚举值和案例(基于枚举值)都有相当清晰的分组,但我有点不确定如何在代码中反射(reflect)这一点。
请注意,在我的代码中,我有大约 5 组,每组 10 到 30 个枚举值/案例。
我可以设想的三个隐约合理的选择是:
- 定义
#region
block 围绕声明中所有逻辑组的 case/enum 值(可选地用空行分隔)。 - 用它的名字注释每个组,在每个组名注释前有一个空行。
- 什么都不做 - 只需将开关/枚举保留为一个巨大的案例/值列表。
你更喜欢哪个?你会分开对待枚举和开关吗?(这对我来说似乎有点奇怪。)现在,我不会说这个问题有任何正确/错误的答案,尽管我仍然很想听听什么是普遍的共识。
注意 1: 不幸的是,这种情况我可能有一个非常长的 50/100+ 值的枚举声明是不可避免的(并且与 switch 类似),因为我正在尝试编写一个词法分析器(tokeniser),因此,出于多种原因,这似乎是最合理的方法。
注意 2: 我完全知道关于是否在通用代码中使用区域(主要用于构造类)的问题已经存在几个重复的问题,但我觉得我的问题很多更具体,尚未解决。
最佳答案
当然,将这些东西区域化。它们可能不会发生太大变化,当发生变化时,您可以展开该区域、进行更改、折叠它,然后继续处理文件的其余部分。
它们存在是有原因的,利用它们对您有利。
关于c# - 你会在长开关/枚举声明中使用区域吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1050638/