2017-09-01 41 views
0

在新的Sub New,我要插入如何使用'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 
+1

当然是空的,您没有设置(“插入”? ) 一个值。 'name =“ziggy”'会做到这一点。如果你想传递一个名字值给类,给构造函数添加一个字符串参数('Sub New')并传递值。你不需要使用参数的花括号。 – Plutonix

+0

对不起,我错误的表单代码并修改它 – ebraham

+0

将消息框移出构造函数,并将其放在'Dim a'后面并显示'a.Name'。构造函数是特殊的,它运行来创建对象。 '用'将在创建对象后分配名称* – Plutonix

回答

1
Dim a As New A With {.Name = "ABCDE"} 'MsgBox Empty 

该消息框将空,因为在上面的陈述中执行的顺序是:

  • 第一个new被调用,子程序new中的所有语句都被执行。
  • 然后初始化步骤发生在with语句中的变量中。

现在替代的解决方案,如果你要打印的名字是初始化时:

可以财产set期间打印,如下图所示。 (你可以使用时名称设置的值不会进一步打印布尔变量)。

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"} 
相关问题