"Доступ к совместно используемому члену, постоянному члену, перечисляемому члену или вложенному типу через экземпляр"

Мне интересно почему Visual Studio поднимает это предупреждение:

Доступ к совместно используемому члену, постоянному члену, члену перечисления или вложенному типу через экземпляр

Мой код:

Dim a As ApplicationDeployment = deployment.Application.ApplicationDeployment.CurrentDeployment

If System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed Then
    If a.IsNetworkDeployed Then
        ' do something   
    End If
End If

Что означает "через экземпляр"? Кроме того, почему это "предупреждение"?

Ответ 1

Отображение предупреждения является вариантом дизайна. В С# это вызовет ошибку при вызове static с использованием ключевого слова instance (this).

Проблема в том, что вы должны вызвать объект, чтобы правильно описать, что это такое.

Более полезная информация на MSDN.

Доступ к элементу Shared через переменную экземпляра может усложнить понимание вашего кода, скрывая тот факт, что этот элемент является Shared.

(...)

Чтобы исправить эту ошибку

  • Для доступа к нему используйте имя класса или структуры, которая определяет член Shared, как показано в следующем примере.

    Public Class testClass
        Public Shared Sub sayHello()
            MsgBox("Hello")
        End Sub
    End Class
    
    Module testModule
        Public Sub Main()
            ' Access a shared method through an instance variable.
            ' This generates a warning.
            Dim tc As New testClass
            tc.sayHello()
    
            ' Access a shared method by using the class name.
            ' This does not generate a warning.
            testClass.sayHello()
        End Sub
    End Module