抱歉,如果这有点随机,但在实例化类时,给类的所有字段赋值是不是一种好的做法?我只是想知道,如果有一个不带参数并为所有字段提供默认值的构造器是更好的做法,还是应该为有值的字段赋值,而让其他字段保持原样,直到需要?
我希望这说得通,贝基
发布于 2010-03-16 22:51:14
我不知道这是否会影响性能,但我个人更喜欢在声明中为任何有显式默认值的字段赋值,因此:
Public Class MyClass
Private pIsDirty As Boolean = False
Private pDated as Date = Now()
End Class请记住大多数“简单”类型,如boolean、integer等都是自动缺省的,不需要初始化,但我在这里只是举例说明,有时为了清楚起见,你还是想要它。此外,因为我编写的任何类都是内部使用的(我们不出售任何公共使用的代码对象),所以我可以向我的类的消费者保证。因此,我通常只编写一个最小的构造函数(如果需要一个非默认的构造函数),它只接受主字段,并在VB中使用新的With语法旋转任何附加值,如下所示:
Dim myObj = New SomeClass() With { .Prop1 = "value", .Prop2 = Now() }发布于 2010-03-16 22:47:30
您的类的构造函数应该接受足够的参数以使其处于可用状态。
通过在构造函数中使用Optional Parameters,您可以获得您想要的相同功能。
这样,您可以按名称仅设置您必须设置的属性,并让其余属性保留默认值,直到您需要更改它们。
Sub Notify(ByVal Company As String, Optional ByVal Office As String = "QJZ")
If Office = "QJZ" Then
Debug.WriteLine("Office not supplied -- notifying Headquarters")
Office = "Headquarters"
End If
' Code to notify headquarters or specified office.
End Sub请记住,可选参数必须在所有非可选参数之后。
发布于 2010-03-16 22:47:02
理想的做法是,只要构造函数返回,就让对象处于可用状态。这减少了部分“就绪”对象被无意中使用的错误。
https://stackoverflow.com/questions/2455264
复制相似问题