VB.Net Свойства-Public Get, Private Set
Я решил, что спрошу... но есть ли способ получить часть свойства, доступную как публичная, но сохранить набор как частный?
в противном случае я думаю мне нужно два свойства или свойство и метод, просто подумал, что это будет чище.
6 ответов:
Да, довольно прямо вперед:
Private _name As String Public Property Name() As String Get Return _name End Get Private Set(ByVal value As String) _name = value End Set End Property
Я не уверен, что минимальная требуемая версия Visual Studio, но в VS2015 вы можете использовать
Public ReadOnly Property Name As String
Он доступен только для чтения для общего доступа, но может быть изменен в частном порядке с помощью
_Name
Public Property Name() As String Get Return _name End Get Private Set(ByVal value As String) _name = value End Set End Property
одна дополнительная настройка стоит упомянуть: я не уверен, что это функция .NET 4.0 или Visual Studio 2010, но если вы используете оба, вам не нужно объявлять стоимостью параметр для блока кода setter / mutator:
Private _name As String Public Property Name() As String Get Return _name End Get Private Set _name = value End Set End Property
Я считаю, маркировка
property
какreadonly
чище, чем ответов. Я считаю, что vb14 требуется.Private _Name As String Public ReadOnly Property Name() As String Get Return _Name End Get End Property
Это можно сжать до
Public ReadOnly Property Name As String
https://msdn.microsoft.com/en-us/library/dd293589.aspx?f=255&MSPPError=-2147217396
Если вы используете VS2010 или более поздней версии это еще проще, чем это
Public Property Name as String
вы получаете частные свойства и получаете/устанавливаете совершенно бесплатно!
смотрите это сообщение в блоге:блог Скотта ГУ