Zuweisung von Werten an Properties

27/12/2009 - 17:16 von Peter Gast | Report spam
Hi,

einfache Frage zur Zuweisung von Werten an Properties. Gibt es einen Grund
die eine oder die andere Variante der u.g. Zuweisungen bei der Instanzierung
an die Property "Bezeichner" vorzuziehen. Wenn ich eine Funktion beim
Zuweisen des Wertes triggern möchte, ist klar, nehme ich die 2.Variante.
Aber ist es ansonsten egal wie 88?

Public Class Test

Public Sub New(ByVal name As String)
Me.mBezeichner = name
End Sub
Public Sub New(ByVal name As String)
Me.Bezeichner = name
End Sub

Private mBezeichner As String = ""
Public Property Bezeichner() As String
Get
Return mBezeichner
End Get
Set(ByVal value As String)
mBezeichner = value
End Set
End Property

End Class



Danke Peter
 

Lesen sie die antworten

#1 Frank Dzaebel
27/12/2009 - 19:52 | Warnen spam
Hallo Peter,

einfache Frage zur Zuweisung von Werten an Properties. Gibt es einen
Grund die eine oder die andere Variante der u.g. Zuweisungen bei der
Instanzierung an die Property "Bezeichner" vorzuziehen.



Die groß geschriebene Variante der öffentlichen Eigenschaft ist
normal vorzuziehen (auch in C# etwa, es gibt aber Ausnahmen).
Nur kurz zwei Dinge dazu:

a) wenn Du im Setter beispielsweise eine Zusatz-Aktion
durchführen würdest, würde sie nicht aufgerufen werden,
wenn Du nur die private Variable benutzt. Sehr klar wird das
etwa bei INotifyPropertyChanged-abgeleiteten Klassen, wo es
richtige Aktualisierungs-Probleme geben könnte.

[Gewusst wie: Implementieren der INotifyPropertyChanged-Schnittstelle]
http://msdn.microsoft.com/de-de/lib...29614.aspx

b) Ihr werdet in VS 2010 - wie in C# schon lange üblich - auch
in den Genuss der "Auto implemented properties" kommen.
Dadurch wird man automatisch in diesen Fàllen die groß
geschriebene Variante benutzen. Insofern hàtte man sonst
zwei gleichzeitige Schreibweisen, was eher unübersichtlich würde.
Wenn die Nicht-Berücksichtigung der Setter-Aktionen gewollt
ist, kann natürlich trotzdem die private Variable explizit gesetzt
werden - muss dann aber auch deklariert werden.

[.Net Framework 4.0: VB.NET supports automatic properties]
http://weblogs.asp.net/gunnarpeipma...rties.aspx


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen