表达式递归调用包含属性“<propertyname>”

更新:2007 年 11 月

属性定义的 Set 过程中的语句将值存储到属性的名称中。

保留属性值的建议方法是:在属性的容器中定义一个 Private 变量,并将其同时用在 Get 和 Set 过程中。Set 过程随后应将传入值存储在此 Private 变量中。

Get 过程的工作方式类似于 Function 过程,因此,当遇到 End Get 语句时,它将能够为属性名称赋值并返回控制。但是,建议的方法是包括 Private 变量作为 Return 语句 (Visual Basic) 中的值。

Set 过程的工作方式类似于不返回值的 Sub 过程。因此,过程或属性名称在 Set 过程中没有特殊含义,并且您无法将值存储到其中。

下面的示例阐释了可能导致此错误的方法,后面是建议的方法。

Public Class illustrateProperties
' The code in the following property causes this error.
    Public Property badProp() As Char
        Get
            Dim charValue As Char
            ' Insert code to update charValue.
            badProp = charValue
        End Get
        Set(ByVal Value As Char)
            ' The following statement causes this error.
            badProp = Value
            ' The value stored in the local variable badProp
            ' is not used by the Get procedure in this property.
        End Set
    End Property
' The following code uses the recommended approach.
    Private propValue As Char
    Public Property goodProp() As Char
        Get
            ' Insert code to update propValue.
            Return propValue
        End Get
        Set(ByVal Value As Char)
            propValue = Value
        End Set
    End Property
End Class

默认情况下,此消息是一个警告。有关隐藏警告或将警告视为错误的更多信息,请参见 在 Visual Basic 中配置警告

**错误 ID:**BC42026

更正此错误

  • 重写属性定义,以便使用前面的示例中阐释的建议方法。

请参见

概念

Property 过程

参考

Property 语句

Set 语句 (Visual Basic)