Autor Beitrag
Kouran
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 27

Gentoo Linux x86 2.6.22, WinXP
C#, Java, Pascal, Lisp, Vim ,VS2k5(VimEmu)
BeitragVerfasst: Di 04.12.07 21:50 
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:

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 58

Win XP Prof. / Linux
C# (VS 2005)
BeitragVerfasst: Mi 05.12.07 09:27 
Das kannst du so machen - voraus gesetzt, dass "mc" deklariert und initialisiert ist natürlich.
Robert_G
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416


Delphi32 (D2005 PE); Chrome/C# (VS2003 E/A, VS2005)
BeitragVerfasst: 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:
ausblenden 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>...