Я решил, что спрошу... но есть ли способ получить часть доступного свойства Get как общедоступное, но сохранить его как private?
В противном случае, я думаю, мне нужны два свойства или свойство и метод, просто подумал, что это будет чище.
Я решил, что спрошу... но есть ли способ получить часть доступного свойства Get как общедоступное, но сохранить его как private?
В противном случае, я думаю, мне нужны два свойства или свойство и метод, просто подумал, что это будет чище.
Да, довольно прямо:
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
Вы получаете частные свойства и Get/Set полностью бесплатно!
см. это сообщение в блоге: Блог Скотта Гука