基于类创建对象时。有些属性我更喜欢不是0或什么都没有。所以我想将初始值设置为1。
最好通过构造函数完成吗?
Class Product
Public Property Price As Decimal
Public Sub New()
Price = 1
End Sub
End Class
或者你也可以写下面的内容吗?这个第二个版本是否将值固定为1,或者如果它是这样写的,你还能改变它吗?
Class Product
Public Property Price As Decimal = 1
End Class
答案 0 :(得分:2)
无论哪种方式,它都会起作用,但是请遵循您的团队通常如何保持一致性。
但是,如果您确实有实例可以打开构造函数以允许在初始化时根据给定构造函数的某些参数设置这些属性,我会选择始终在构造函数中设置它以保持一致性。如果属性在初始化时始终具有默认值X,则在顶部将其内联,以便突出显示。
基本示例:
Class Product
Public Property Price As Decimal = 1
Public Property Quantity As Integer
Public Sub New()
Quantity = 0
End Sub
Public Sub New(quantity As Integer)
Quantity = quantity
End Sub
End Class
答案 1 :(得分:0)
最后它是相同的,在这两种情况下你都可以改变这些值。
答案 2 :(得分:0)
没有区别,您可以更改值,除非它是常量或只读。如果你做第二个,编译器将像你的第一个版本一样转换它。这是一个可以告诉你的小程序。这将显示0然后显示1.
Module Module1
Sub Main()
Dim o As New B
Console.ReadLine()
End Sub
End Module
MustInherit Class A
Public Sub New()
Show()
End Sub
Public MustOverride Sub Show()
End Class
Class B
Inherits A
Private test As Integer = 1
Public Sub New()
MyBase.New()
' Value for test is being set here
Show()
End Sub
Public Overrides Sub Show()
Console.WriteLine(test)
End Sub
End Class