式は、含んでいるプロパティ '<propertyname>' を再帰的に呼び出します。
更新 : 2007 年 11 月
プロパティ定義の Set プロシージャ内のステートメントが、そのプロパティの名前に値を格納しています。
プロパティの値を格納するには、プロパティのコンテナに Private 変数を定義し、それを Get プロシージャおよび Set プロシージャ内で使用する方法をお勧めします。この場合は Set プロシージャが、この Private 変数に受け取った値を格納します。
Get プロシージャは Function プロシージャと同様の動作をするため、プロパティ名に値を代入したり、End Get ステートメントに達したときに制御を戻したりすることが可能です。しかし、推奨されるのは、Return ステートメント (Visual Basic) にこの値のための Private 変数を定義するという方法です。
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 での警告の構成 を参照してください。
Error ID: BC42026
このエラーを解決するには
- 上記の例で示した推奨される方法を使用するようにプロパティ定義を変更します。