Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Свойство по умолчанию — это свойство класса или структуры, к которому код может получить доступ, не указывая его. При обращении к коду, когда именуется класс или структура, но не свойство, и если контекст допускает доступ к свойству, Visual Basic разрешает доступ к свойству по умолчанию данного класса или структуры, если оно существует.
Класс или структура могут иметь не более одного свойства по умолчанию. Однако можно перегружать свойство по умолчанию и иметь несколько версий.
Дополнительные сведения см. в разделе "По умолчанию".
Объявление свойства по умолчанию
Объявите свойство обычным образом. Не указывайте ключевое слово
Shared
илиPrivate
.Включите ключевое
Default
слово в объявление свойства.Укажите хотя бы один параметр для свойства. Нельзя определить свойство по умолчанию, которое не принимает по крайней мере один аргумент.
Default Property myProperty(ByVal index As Integer) As String
Вызов свойства по умолчанию
Объявите переменную содержащего класса или типа структуры.
Dim x As New class1(3)
Используйте только имя переменной в выражении, в котором обычно вы будете включать имя свойства.
MsgBox(x)
Укажите после имени переменной список аргументов в скобках. Свойство по умолчанию должно принимать по крайней мере один аргумент.
MsgBox(x(1))
Чтобы получить значение свойства по умолчанию, используйте имя переменной со списком аргументов в выражении или после знака равенства (
=
) в операторе присваивания.MsgBox(x(1) & x(2) & x(3))
Чтобы задать значение свойства по умолчанию, используйте имя переменной с списком аргументов слева от инструкции назначения.
x(1) = "Hello" x(2) = " " x(3) = "World"
Всегда можно указать имя свойства по умолчанию вместе с именем переменной, как и для доступа к любому другому свойству.
x.myProperty(1) = "Hello" x.myProperty(2) = " " x.myProperty(3) = "World"
Пример 1
В следующем примере объявляется свойство по умолчанию для класса.
Public Class class1
Private myStrings() As String
Sub New(ByVal size As Integer)
ReDim myStrings(size)
End Sub
Default Property myProperty(ByVal index As Integer) As String
Get
' The Get property procedure is called when the value
' of the property is retrieved.
Return myStrings(index)
End Get
Set(ByVal Value As String)
' The Set property procedure is called when the value
' of the property is modified.
' The value to be assigned is passed in the argument
' to Set.
myStrings(index) = Value
End Set
End Property
End Class
Пример 2
В следующем примере показано, как вызвать свойство myProperty
по умолчанию для класса class1
. Три оператора присваивания хранят значения в myProperty
, а вызов MsgBox считывает значения.
Sub Test()
Dim x As New class1(3)
x(1) = "Hello"
x(2) = " "
x(3) = "World"
MsgBox(x(1) & x(2) & x(3))
End Sub
Наиболее распространенное использование свойства по умолчанию — это свойство Item[] в различных классах коллекции.
Надежное программирование
Свойства по умолчанию могут привести к небольшому сокращению символов исходного кода, но они могут сделать код более сложным для чтения. Если вызывающий код не знаком с классом или структурой, если он ссылается на класс или имя структуры, он не может быть уверен, обращается ли ссылка к классу или структуре или свойству по умолчанию. Это может привести к ошибкам компилятора или тонким ошибкам логики во время выполнения.
Вы можете несколько уменьшить вероятность ошибок свойств по умолчанию, всегда используя оператор Option Strict , чтобы задать для проверки типа компилятора значение On
.
Если вы планируете использовать предопределенный класс или структуру в коде, необходимо определить, имеет ли он свойство по умолчанию, а если да, то что такое его имя.
Из-за этих недостатков следует не определять свойства по умолчанию. Для удобочитаемости кода следует также всегда ссылаться на все свойства явным образом, даже свойства по умолчанию.
См. также
- Процедуры свойств
- Параметры процедуры и аргументы
- Заявление о собственности
- По умолчанию
- Различия между свойствами и переменными в Visual Basic
- Практическое руководство. Создание свойства
- Как объявить свойство с смешанными уровнями доступа
- Практическое руководство: Вызов процедуры свойства
- Практическое руководство. Добавление значения в свойство
- Практическое руководство. Получение значения из свойства