Jusqu'à présent, j'avais une propriété en lecture seule dans VB.NET commePropriété implémentée automatiquement dans VB.NET avec un setter protégé?
Public ReadOnly Property Username() As String
Maintenant, je dois apporter des modifications à mon code comme le poseur de cette propriété doit être protégée. En C# je l'aurais fait:
public string Username {get; protected set;}
Mais je ne peux pas trouver une main courte et d'une solution de bonne mine en VB.NET. VB.NET fournit-il cela et je ne suis pas au courant de cela? Ou dois-je écrire autant de code et le rendre un peu plus laid?
Public Property Username() As String
Get
Return m_Username
End Get
Protected Set
m_Username = Value
End Set
End Property
Private m_Username As String
Ça va rendre ma classe si sale si j'avais 20 propriétés et les définir comme ça.
Malheureusement, cela ne permettrait pas une logique supplémentaire dans le setter de propriété, par exemple pour des événements de collecte INotifyPropertyChanged. Une méthode séparée dédiée à la définition de la valeur pourrait être implémentée, qui gère également cette logique, mais la méthode pourrait être déclarée protégée et '_username' pourrait être privé. –