如何使用"With {...}"语法分配属性值?



在新的子新中,我想插入属性的值

前任: 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"}

最新更新