Je pensais que je demanderais ... mais existe-t-il un moyen de rendre la partie Get d'une propriété disponible en tant que public, mais de garder l'ensemble comme privé?
Sinon, je pense avoir besoin de deux propriétés ou d'une propriété et d'une méthode, je me suis dit que ce serait plus propre.
Oui, assez simple:
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
Je ne sais pas quelle est la version minimale requise de Visual Studio, mais dans VS2015, vous pouvez utiliser
Public ReadOnly Property Name As String
Il est en lecture seule pour un accès public mais peut être modifié en privé à l'aide de _Name
Public Property Name() As String
Get
Return _name
End Get
Private Set(ByVal value As String)
_name = value
End Set
End Property
Un Tweak supplémentaire à noter: je ne sais pas s'il s'agit d'une fonctionnalité .NET 4.0 ou Visual Studio 2010, mais si vous utilisez les deux, vous n'avez pas besoin de déclarer le paramètre valeur pour le paramètre. setter/mutator bloc de code:
Private _name As String
Public Property Name() As String
Get
Return _name
End Get
Private Set
_name = value
End Set
End Property
Je trouve marquer le property
comme readonly
plus propre que les réponses ci-dessus. Je crois que vb14 est requis.
Private _Name As String
Public ReadOnly Property Name() As String
Get
Return _Name
End Get
End Property
Cela peut être condensé à
Public ReadOnly Property Name As String
https://msdn.Microsoft.com/en-us/library/dd293589.aspx?f=255&MSPPError=-2147217396