使用Class Sub中的Property或使用New

时间:2013-09-16 09:51:04

标签: vb.net

我构建了我的第一个类,并且可能有一个非常简单的问题: 我写的时候:

Public Class DB_Query
Private myQueryA As String

Public Property QueryA As String
    Get
        QueryA = myQueryA
    End Get
    Set(value As String)
        myQueryA = value
    End Set
End Property

Public Sub Send_Query
[...]
Dim mycmd as SqlCommand = SqlCommand(me.myQueryA, myconn)
[...]
End Sub

这是否是正确的方法,因为我总是必须在使用Send_Query方法之前设置“QueryA”。或者我必须使用构造函数?

2 个答案:

答案 0 :(得分:0)

如果在调用方法之前应始终设置属性,并且只能设置一次,那么我建议使用readonly属性(使用私有set)并通过构造函数设置值。

但是,如果可以多次设置属性,则需要将属性保留为读写。在这种情况下,您不能依赖构造函数,因为在调用构造函数之后始终可以将属性设置为无效值(例如Nothing)。所以在这种情况下,如果在属性值无效时调用方法,我建议你让Send_Query方法抛出一个合适的异常(也许是InvalidOperationException

答案 1 :(得分:-1)

你可以给你的属性一次值,你可以在你的构造函数或任何其他函数中设置它