为Enum值添加前缀有什么好处?

Ger*_*iss 3 vb.net enums

在这篇文章中, Jon Skeet指出应该更改以下代码以符合.NET命名约定.这样做也会减少代码中的噪音量.

Enum enUtilityTypeDetailStudentEntryWorkflow As Integer
    enUTDSEW_Default = 379
    enUTDSEW_ApplicantRecordBook = 380
End Enum
Run Code Online (Sandbox Code Playgroud)

我必须承认,我几乎像一只羊,并且正在关注别人在我之前所做的事情.我认为前缀看起来不正确然后两次也没有意义.在查看了几个.NET Framework示例之后,看起来这将更接近标准.

Enum StudentEntryWorkflow As Integer
    Default = 379
    ApplicantRecordBook = 380
End Enum
Run Code Online (Sandbox Code Playgroud)

我是否使用这些名称?
一般的任何其他建议或意见?

Ode*_*ded 5

我不知道标准,但在枚举和枚举值上使用匈牙利表示法不是我以前见过的.

你的第二个例子更接近我通常看到的那种代码,所以在这方面,是的,它更标准.

请参阅指南第8.2.3节- pascal外壳,无前缀/后缀.

Lance Hunt的C#编码标准第2.1节的准则16 也说避免前缀和后缀.

我会说这是非常普遍的 - 重点是它有助于提高可读性.使用前缀和后缀会降低可读性,因此非常普遍不鼓励.


Met*_*ght 5

在我工作的地方,我们还为枚举使用前缀(在本例中为E),我必须说我喜欢它。这使得发现枚举并将其与类或变量区分开来非常容易。这是我们代码库中的一个示例:

myJob.Status = EJobStatus.Completed
Run Code Online (Sandbox Code Playgroud)

在这里,我们可以轻松地看到分配给作业的状态是枚举“ EJobStatus”中的值“ Completed”。

除了我的个人喜好,如果您要遵循.NET命名约定,则枚举没有前缀。但是最重​​要的是在给定的代码库中始终遵循相同的约定。

编辑:我只是看到您还为实际枚举值添加了前缀,尽管我们没有这样做。我们总是以这种方式引用枚举ESomeEnum.SomeValue。在这种情况下,给实际枚举值加上前缀是没有用的。另外,我认为对枚举名称和枚举值使用相同的前缀不是一个好主意,因为它们不是同一回事。