Почему нельзя получить доступ к общему / статическому члену через переменную экземпляра?

Вот пример того, о чем я говорю ...

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

Me.MyValue выдает предупреждение в VB.NET и (эквивалентный код дает) ошибку в C #. Есть ли для этого особая причина? Мне кажется более интуитивным / естественным доступ к общей функции с помощью «Me.MyValue», но я избегаю этого, чтобы мои предупреждения оставались равными 0.

Кто-то другой просто решил: «Нет, имеет смысл сделать это другим. способ 'или есть какая-то техническая причина, по которой я не делаю' Не понимаю?

РЕДАКТИРОВАТЬ:

Всем спасибо. Я подумал об этом неправильно, скорее о «подклассе» в ООП. Даже если что-то объявлено в базовом классе, вы получаете к нему доступ через имеющийся у вас экземпляр. Но эти отношения отличаются от общих или статических.

8
задан Rob P. 3 March 2011 в 16:14
поделиться