这是我正在谈论的一个例子......
Public Class Sample1
Public Shared Function MyValue() As Integer
Return 0
End Function
Public Sub Code()
Dim ThisIsBad = Me.MyValue
Dim ThisIsGood = Sample1.MyValue
End Sub
End Class
Run Code Online (Sandbox Code Playgroud)
Me.MyValue在VB.NET中发出警告并且(等效代码给出)C#中的错误.这有什么特别的原因吗?我发现使用'Me.MyValue'访问共享函数更直观/自然 - 但我避免它将我的警告保持为0.
其他人只是决定'不,从另一个角度来做更有意义',还是有一些我不理解的技术原因?
编辑:
感谢大家.我认为它错了,更像是OOP中的"子类".即使在基类中声明了某些内容,也可以通过您拥有的实例访问它.但这种关系与共享或静态不同.
根据定义,静态成员是在类级别而不是实例级别声明的,因此使用this(或me在VB中)访问静态成员并不是真正感觉正确(并且在C#中不正确)
说this.something(或me.something)意味着您正在访问特定于该特定实例的"某些东西",而同样,静态成员在该类的所有实例中共享.
| 归档时间: |
|
| 查看次数: |
615 次 |
| 最近记录: |