【发布时间】:2020-03-12 19:16:27
【问题描述】:
当我的对象的属性被访问时,我想收集一些特定的数据。
在此示例中,每次读取属性时计数器都会增加,但可能还需要执行其他逻辑。我想拦截属性方法的getter,所以我自己的一些自定义逻辑就在其中。
目前看来,为了自定义我自己的属性方法是不可继承的,但也许有一种方法可以声明属性以覆盖在属性方法之前或之后执行的方法吗?任何帮助将不胜感激。
示例想法:
Public Class MyObject
<MyPropertyTag()>
Property funTestValue As String
Sub testMethod()
Dim x = funTestValue `counter increases by one`
End Sub
End Class
<AttributeUsage(AttributeTargets.Property)>
Public Class MyPropertyTag
Inherits System.Attribute
Private Val
Private _counter As Long
Function [Get]()
_counter += 1
Return Val
End Function
Sub [Set](value)
Me.Val = value
End Sub
End Class
【问题讨论】:
标签: vb.net properties attributes accessor