Каковы преимущества ключевого слова Property в VB.NET по сравнению с использованием частного поля с геттерами и сеттерами? - PullRequest
4 голосов
/ 21 мая 2011

В VB.NET, в чем преимущества использования ключевого слова Property вместо:

Private MyProperty as String
Public Sub setP(ByVal s as String)
    MyProperty = s
End Function
Public Function getP() as String
    return MyProperty
End Function

Исходя из Java Я склонен использовать этот стиль вместо Property...End Property - есть ли причинане до?

Ответы [ 4 ]

10 голосов
/ 21 мая 2011

Вы выполняете работу, которую выполняет компилятор. Преимущества ключевого слова Property:

  • Вы не можете случайно смешать тип свойства getter и setter, реальная проблема в VB
  • Нет необходимости в неловких get и установленных префиксах, компилятор определяет, какой из них вы хотите
  • Для привязки данных требуется свойство
  • Вы можете воспользоваться синтаксисом автоматического свойства, не нужно объявлять приватное поле и только одну строку кода.

То же объявление в VS2010 с использованием синтаксиса свойства auto:

Public Property P As String

Компилятор автоматически генерирует методы получения и установки, а также закрытое поле поддержки. При необходимости вы реорганизуете методы доступа.

4 голосов
/ 21 мая 2011

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

Как отражение легко найдет все ваши свойства, потому что для этого есть методы.

Например, ORM легко сможет найти ваши свойства, но им будет сложнее найти установщики геттеров, потому что принято использовать свойства.

Так что функционально они могут быть одинаковыми, но условно использовать свойства.

2 голосов
/ 21 мая 2011

Использование свойств позволяет редактору Visual Studio отображать / редактировать его в сетке свойств. Если вы создаете элемент управления или DLL, которые будут использовать другие, они используются для изменения свойств времени разработки в сетке свойств.

Также property-grid-control сможет подобрать это, если вы добавите элемент управления в форму, а затем установите свойство SelectedObject-свойства сетки на экземпляр вашего класса / элемента управления.

2 голосов
/ 21 мая 2011

Функционально разницы нет, но для меня использование Properties является более чистой реализацией.Посмотрите здесь

.Net 4 также предоставляет свойства AutoImplement для VB.net здесь где частная вспомогательная переменная автоматически создается компилятором, что приводит к гораздо более чистому коду и меньшекод котельной плиты написать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...