VB.NET设置类属性初始值

时间:2016-03-29 13:49:08

标签: vb.net class oop constructor new-operator

基于类创建对象时。有些属性我更喜欢不是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

3 个答案:

答案 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