Подтвердить что ты не робот

Что такое использование общей переменной в VB.NET?

Что такое переменная Shared в VB.NET?

4b9b3361

Ответ 1

Это то же самое, что и static в С# и большинстве других языков. Это означает, что каждый объект класса использует одну и ту же копию переменной, свойства или метода. При использовании с методом, поскольку он является статичным, вам не нужен экземпляр объекта.

MyClass.DoSomething()

а не

Dim oObject as New MyClass()
oObject.DoSomething()

Ответ 2

Ключевое слово "Shared" в VB.NET эквивалентно "статическому" ключевому слову в С#.

В VB.NET ключевое слово Shared можно применять к операторам Dim, Event, Function, Operator, Property и Sub внутри класса; однако в С# ключевое слово static может применяться как к этим операторам в нормальном классе, так и на уровне класса, чтобы сделать весь класс статическим.

A "Общий" или "статический" метод действует на "тип" (то есть на класс), а не на экземпляр типа/класса. Поскольку Shared методы (или переменные) действуют на тип, а не на экземпляр, всегда может быть только одна "копия" переменной или метода в отличие от многих копий (по одному для каждого экземпляра) в случае не общего доступа (т.е. экземпляра) или переменных.

Например: если у вас есть класс, позвольте ему MyClass с помощью одного не общего метода, называемого MyMethod.

Public Class MyClass
    Public Sub MyMethod()
        // Do something in the method
    End Sub
End Class

Для вызова этого метода вам понадобится экземпляр класса для вызова метода. Что-то вроде:

Dim myvar as MyClass = New MyClass()
myvar.MyMethod()

Если этот метод затем был превращен в "общий" метод (добавив в определение метода "Общий" классификатор, вам больше не нужен экземпляр класса для вызова метода.

Public Class MyClass
    Public Shared Sub MyMethod()
        // Do something in the method
    End Sub
End Class

И затем:

MyClass.MyMethod()

Вы также можете увидеть примеры этого в самой платформе .NET. Например, тип "string" имеет много статических/общих методов. То есть.

// Using an instance method (i.e. Non-shared) of the string type/class.
Dim s as String = "hello"
s.Replace("h", "j")

// Using a static/shared method of the string type/class.
s = String.Concat(s, " there!");

Вот хорошая статья, которая объясняет это далее:

Общие члены и члены экземпляра в VB.NET

Ответ 3

Просто, когда вы хотите иметь единственный экземпляр переменной для всего приложения, разделяемый между объектами вашего класса. Вместо 1-на-объект.