Entwickler-Ecke

C# - Die Sprache - array als property


Kouran - Di 04.12.07 21:50
Titel: array als property
heho,
wollte nur schnell mal was fragen, um sicher zu gehen. Ich arbeite im moment an einem relativ komplexen Projekt mit mehreren Leuten und wir haben gerade beim Zusammenbauen einiges an Fehlern und zwar speziell:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
[DataMember]
private ServoMotor[] _motors = new ServoMotor[mc.ServoCount];
        
public ServoMotor[] Motors {
     get { return _motors; }
     set { _motors = value; }
}

ist es möglich ein array als property zu benutzen oder muß man dann für diesen Zweck das array als public deklarieren, was relativ unschön ist in meinen Augen. Wir können es momentan aufgrund mehrerer Fehler nicht debuggen, da wenn wir es mit einem public arry machen, andere Fehler auftauchen.
Würde gerne wissen ob diese Konstruktion prinzipiell möglich ist von der Sprache her. Danke schonmal im Vorraus.

Gruß
Tom

Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt


golgol - Mi 05.12.07 09:27

Das kannst du so machen - voraus gesetzt, dass "mc" deklariert und initialisiert ist natürlich.


Robert_G - Mi 05.12.07 12:41

Arrays sind immutable.
Du kannst also nichts hinzufügen und entfernen.
Da sie gleichzeitig Referenztypen sind, kann es so zu Inkonsistenzen kommen.

Falls du den Array nur mit einer festen Läge pro Instanz brauchst, dann ginge das so:

C#-Quelltext
1:
2:
3:
4:
5:
6:
public readonly ServoMotor[] Motors;

public DeineKlasse()
{
   Motors = new ServoMotor[mc.ServoCount];
}


Wenn du ihn in unterschiedlichen Größen pro Instanz brauchst, dann nehme eine List<T>...