VB.Net Properties – Public Get, ensemble privé

J’ai pensé que je demanderais … mais y a-t-il un moyen d’avoir la partie Get d’une propriété disponible en tant que publique, mais de garder l’ensemble comme privé?

Sinon, je pense que j’ai besoin de deux propriétés ou une propriété et une méthode, juste pensé que ce serait plus propre.

Oui, assez simple:

 Private _name As Ssortingng Public Property Name() As Ssortingng Get Return _name End Get Private Set(ByVal value As Ssortingng) _name = value End Set End Property 

Je ne suis pas sûr de la version minimale requirejse de Visual Studio, mais dans VS2015, vous pouvez utiliser

 Public ReadOnly Property Name As Ssortingng 

Il est en lecture seule pour un access public, mais peut être modifié en privé à l’aide de _Name

  Public Property Name() As Ssortingng Get Return _name End Get Private Set(ByVal value As Ssortingng) _name = value End Set End Property 

Une modification supplémentaire à mentionner: je ne suis pas sûr qu’il s’agisse 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 value pour le bloc setter / mutator de code:

 Private _name As Ssortingng Public Property Name() As Ssortingng Get Return _name End Get Private Set _name = value End Set End Property 

Je trouve que le marquage de la property plus propre que les réponses ci-dessus. Je crois que vb14 est requirejs.

 Private _Name As Ssortingng Public ReadOnly Property Name() As Ssortingng Get Return _Name End Get End Property 

Cela peut être condensé à

 Public ReadOnly Property Name As Ssortingng 

https://msdn.microsoft.com/en-us/library/dd293589.aspx?f=255&MSPPError=-2147217396

Si vous utilisez VS2010 ou plus tard, c’est encore plus facile que cela

 Public Property Name as Ssortingng 

Vous obtenez les propriétés privées et Get / Set complètement gratuitement!

voir ce blog: le blog de Scott Gu