何时使用集合与多个属性

Jen*_*ich 5 .net collections properties class

我正在为一个ASP.NET应用程序构建一个相对简单的类(例如:Person),该应用程序具有几个相关的布尔属性(例如:Certifications).我可以选择将它们存储为多个属性:

Class Person
    Property HasCertL1
    Property HasCertL2
    Property HasCertL3
End Class
Run Code Online (Sandbox Code Playgroud)

或者使用集合和枚举:

Enum Cert
    L1
    L2
    L3
End Enum

Class Person
    Property Certs as List(Of Cert)
End Class
Run Code Online (Sandbox Code Playgroud)

该类将不会在其他地方使用,并且如果不重新编译该类,则不会更新项目(Certs).我正在寻找选择其中一个的理由.任何人都可以提供任何最佳实践或指向我可能错过的一些资源吗?提前致谢!

干杯,JE

Kei*_*thS 3

我的投票是使用集合。原因如下:当您为每个认证级别设置一个属性时,如果您要添加一个认证级别,则必须添加额外的代码来检查人们是否具有该额外级别。这可能需要对使用 Person 的所有其他类进行更改。

如果使用列表,Person 类不会改变;只是列表的可用值发生了变化。这需要更少的代码更改来检查特定级别的认证。