在新的子新中,我想插入属性的值
前任: 1-舱位
Public Class A
Property Name As String
Sub New()
MsgBox(Name) 'Empty
End Sub
End Class
2- 表格
Dim a As New A With {.Name = "ABCDE"} 'MsgBox Empty
Dim a As New A With {.Name = "ABCDE"} 'MsgBox Empty
消息框将为空,因为在上面的语句中,执行顺序为:
- 首先调用
new
,然后执行子例程new
中的所有语句。 - 然后对语句
with
变量执行初始化步骤。
现在,如果要打印名称,则替代解决方案是在初始化期间:
您可以在属性set
期间打印,如下所示。(当 name 设置为值时,可以使用 bool 变量来不再打印。
Public Class A
'PROPERTY GET AND SET
Private _name As String
Public Property Name() As String
Get
Return _name
End Get
Set(ByVal value As String)
_name = value
MsgBox(_name) 'PRINT HERE
End Set
End Property
'NEW SUBROUTINE
Sub New()
End Sub
End Class
叫:
Dim a1 As New A With
{.Name = "ABCDE"}