Cha*_*adD 6 .net vb.net code-analysis
这是我试图理解的规则的解释.这是代码分析器抱怨的简化代码:
Public Class CustomerSpeed
Public Enum ProfitTypeEnum As Integer
NotSpecified = 0
FlatAmount = 1
PercentOfProfit = 2
End Enum
Private _ProfitTypeEnum As ProfitTypeEnum
Public Sub New(ByVal profitType As ProfitTypeEnum)
_ProfitTypeEnum = profitType
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)
如果枚举仅适用于类,为什么在类中使它成为包含类型是一件坏事?似乎比我更整洁......
有谁知道以下行是什么意思?:
嵌套类型包括成员可访问性的概念,一些程序员不清楚这一概念
使用命名空间对类和枚举进行分组似乎不是解决此警告的有用方法,因为我希望枚举属于与类名相同的父级.
枚举通常不会放在使用枚举的类中,因此人们不习惯指定枚举的位置:
Dim speed As New CustomerSpeed(CustomerSpeed.ProfitTypeEnum.FlatAmount)
Run Code Online (Sandbox Code Playgroud)
将枚举放在类之外使其更易于使用:
Dim speed As New CustomerSpeed(ProfitTypeEnum.FlatAmount)
Run Code Online (Sandbox Code Playgroud)
枚举仍包含在与类相同的命名空间中.正如分析解释指出的那样,您应该使用命名空间来对公共成员进行分组,而不是将它们相互嵌套.
除了其他响应中已经涵盖的可用性和可发现性问题之外,还有一个潜在的可维护性问题。当您发现您的枚举在其他地方也可能有用的那一天会发生什么?将它移出其父类将是一个重大变化,复制它会引入其自身的可维护性问题,并且要求 API 使用者将它与另一个类一起使用开始变得丑陋。为什么不通过系统地避免嵌套枚举来避免这些潜在问题呢?
| 归档时间: |
|
| 查看次数: |
4299 次 |
| 最近记录: |