更改枚举类型是一个很好的设计实践:
Public Enum EnumerationType
EnumerationMember1
EnumerationMember2
End Enum
到具有实现者类的接口库(即使它们是空的)?
Public Interface IEnumerationType
End Interface
Public Class EnumerationMember1 : Implements IEnumerationType
End Class
Public Class EnumerationMember2 : Implements IEnumerationType
End Class
出于可扩展性目的。
有任何缺点吗?在任何情况下,最好只使用枚举吗?
答案 0 :(得分:0)
INTERFACES用于课程之间的合同 那是你有两个非相关的类共享一些方法
枚举类型存储特殊值。这些是命名常量。使用Enum,我们会在整个程序中替换魔术常量。 这提高了代码清晰度, 组织代码 并使代码更易于维护
出于可扩展性目的,最好使用接口,因为您将拥有方法属性,并且您可以稍后继承该类
Public Enum
使用带有高级选项的枚举接口,那么缺点是什么?没有缺点:)
答案 1 :(得分:0)
并不完全清楚你所追求的是什么,但请看一下强类型的枚举模式。
''' <completionlist cref="EnumerationType"/>
Class EnumerationType
Private Key As String
Public Shared ReadOnly Member1 As EnumerationMember1 = New EnumerationMember1("EnumerationMember1")
Public Shared ReadOnly Member2 As EnumerationMember2 = New EnumerationMember2("EnumerationMember2")
Private Sub New(key as String)
Me.Key = key
End Sub
Public Overrides Function ToString() As String
Return Me.Key
End Function
End Class
因此,当您使用它时,它看起来像
Sub Main
DoSomething(EnumerationType.EnumerationMember1)
DoSomething(EnumerationType.EnumerationMember2)
End Sub
Sub DoSomething(test As IEnumerationType)
Console.WriteLine(test.ToString())
End Sub
但您可以轻松地为其添加功能(例如显式转换,或使用共享字典迭代所有成员的方式,或者您想到的任何内容)。
它是类型安全的,并且使用魔术completionlist
注释将启用Intellisense支持。