ser*_*hio 2 .net vb.net .net-2.0
假设我有一些相互依赖的常量,我决定将它们放在一个容器中,而不是将它作为一个单独的常量保存在一个容器中.
我认为使用a Structure作为该范围,但编译器强制我声明该结构的私有成员.
' Compile error: at least one private member is needed.
Private Structure BandSizes
Const BandHeight As Short = HourHeight + 20
Const HourHeight As Short = HalfHourHeight + 20
Const HalfHourHeight As Short = LineHeight + PictureHeight + 20
Const PictureHeight As Short = 20
Const LineHeight As Short = StopHeight + 10
Const LineWidth As Short = 50
Const StopHeight As Short = 30
End Structure
Run Code Online (Sandbox Code Playgroud)
因为我只有几个整数常量,我应该创建一个共享(静态)类吗?
平台:VB.NET(.NET 2)
在我看来,为此目的的最佳选择是创建一个只包含共享,静态成员和常量的(私有)类.您无需创建对象,也可以根据需要控制辅助功能.
Private NotInheritable Class BandSizes
Public Const BandHeight As Short = HourHeight + 20
Public Const HourHeight As Short = HalfHourHeight + 20
Public Const HalfHourHeight As Short = LineHeight + PictureHeight + 20
Public Const PictureHeight As Short = 20
Public Const LineHeight As Short = StopHeight + 10
Public Const LineWidth As Short = 50
Public Const StopHeight As Short = 30
Private Sub New()
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)
注意:NotInheritable在类的声明中需要,因为它是使用模块时编译器将生成为CIL的内容.我更喜欢"标准 - .NET" - 而不是Visual Basic的东西.此外,您可以更好地控制其可访问性,并可以将其作为内部类.这实际上是C#静态类的VB.NET对应物.