Entwickler-Ecke

C# - Die Sprache - Methodendeklaration bei Übergabe Array


Felix2000 - Do 27.10.11 10:11
Titel: Methodendeklaration bei Übergabe Array
Hi Folks !

Muss ich bei Arrays in einer Methodenübergabe ByRef oder ByVal davorsetzen? Beispiel:


C#-Quelltext
1:
2:
3:
4:
5:
void methodexyz(ByRef int[] intarray){

   ...

}


oder


C#-Quelltext
1:
2:
3:
4:
5:
void methodexyz(ByVal int[] intarray){

   ...

}


Welche Variante ist korrekt unter der Prämisse, dass mein Array außerhalb dieser Methode deklariert und initialisiert wurde?

Greetz
Felix

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


Ralf Jansen - Do 27.10.11 10:15

ByRef :?: Von welcher Sprache redest du hier? Oder meinst du eher ref?

Wenn du nur die Inhalte des Arrays in der Methode manipulieren willst brauchst du ref nicht. ref bzw. out bräuchtest du nur wenn du ein neues Array in der Methode erzeugen würdest un das via diesem Parameter zurückgeben willst.


Felix2000 - Do 27.10.11 10:19

Ach so sorry !

Ich habe bisher viel mit Java gemacht und dort gibt es die Optionen ByRef und ByVal.

Welche Variante wäre in C Sharp die dementsprechende?

Greetz
Felix


Ralf Jansen - Do 27.10.11 10:24

ByRef wäre wie gesagt entweder ref oder out. ByVal ist in C# der Default du musst/kannst den nicht explizit benennen.