Laden...

Übergabeparameter Array fester Größe

Erstellt von steffen_dec vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.644 Views
S
steffen_dec Themenstarter:in
322 Beiträge seit 2007
vor 16 Jahren
Übergabeparameter Array fester Größe

Hallo Leute,

wie kann man es machen?

hab verschiedenes probiert:


public bool WritePZD(UInt16[2] val) 
{
...
}

nur so scheint es zu gehen:


public bool WritePZD(UInt16[] val) 
{
...
}

kann man die Anzahl der Werte im Array nicht festlegen?

Vielen Dank im Voraus
Steffen

6.862 Beiträge seit 2003
vor 16 Jahren

Brauchst doch keine Länge mitgeben, das Array an sich hat doch schon die Length Eigenschaft.

Baka wa shinanakya naoranai.

Mein XING Profil.

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo steffen_dec,

zur Compilezeit erzwingen wie groß das Array ist, kannst du nicht. Du kannst aber zur Laufzeit die Array-Größe abfragen und wenn sie nicht stimmt eine ArgumentException werfen.

herbivore

S
8.746 Beiträge seit 2005
vor 16 Jahren

Original von steffen_dec
kann man die Anzahl der Werte im Array nicht festlegen?

So ist es, Arrays sind grundsätzlich dynamisch und damit von variabler, aber nicht änderbarer Länge. Das ist anders als z.B. in C/C++ oder Pascal.

630 Beiträge seit 2007
vor 16 Jahren

Ich glaube er will erreichen, das man z.b. nur Arrays welche 2 Elemente lang sind übergeben kann.

Das geht so weit ich weis nicht. In so einem Fall könnte man die Länge in der Methode prüfen und dann ggf. eine Exception oder eine Warnung erzeugen.

Noch sauberer währe es eine Struktur zu definieren welche das Wertepaar repräsentiert, und diese dann an die Methode zu übergeben.

Gruss
tscherno

To understand recursion you must first understand recursion

http://www.ilja-neumann.com
C# Gruppe bei last.fm

S
8.746 Beiträge seit 2005
vor 16 Jahren

Wie gesagt, zur Compiletime geht das nicht. Man kann das natürlich zur Laufzeit prüfen und dann eine InvalidArgumentException werfen.

Man kann natürlich den Weg über einen benutzerdefinierten Typen gehen (Idee mit dem Struct), oder sich eine 2-Elemente-Collection ableiten. Aber vermutlich geht es hier nur darum, sich von einem gewohnten Feature zu trennen.

S
steffen_dec Themenstarter:in
322 Beiträge seit 2007
vor 16 Jahren

Hallo,

vielen Dank für eure Antworten, dass habe ich mir schon fast gedacht...

werde es dann einfach zur laufzeit überprüfen

Gruß
Steffen