| 

.NET C# Java Javascript Exception

3
Ich steige von VB auf C# um. Was bedeuten die Typen ref und out für Paramater bei Prozeduren? Handelt es sich bei den ref-Parametern um einfache Verweis- sprich Referenzdatentypen und bei out-Parametern um Parameter, die Ergebniswerte zurückliefern? Und warum ist ref überhaupt anzugeben, wenn Referenzvariablen doch über die Verweisvariable ohnehin so änderbar sind?
News:
20.10.2011
DevBeg 19 1 2
1
Ein Blick in die MSDN wirkt oft Wunder, da ist alles erklärt (zumindest alles was die Syntax betrifft).

BTW: In c# gibt es keine Prozeduren, nur mehr Methoden.
gfoidl 20.10.2011
4 Antworten
2
Ganz rechts oben hat ck eine Suchfunktion, über die Du z.B. diese sehr ähnliche Frage samt Antwort finden könntest.

Warum ist ref überhaupt anzugeben, wenn Referenzvariablen doch über die Verweisvariable ohnehin so änderbar sind?

Wenn eine Methode eine Referenz auf ein Objekt als "normalen" Parameter (ohne out und ref) übergeben bekommt, kann sie das Objekt ändern. Mit ref hingegen kann sie die Referenz ändern, d.h. nach dem Rückkehr der Methode hält der Aufrufer ggf. eine völlig neue Referenz auf ein anderes Objekt, statt die alte Referenz auf ein, möglicherweise geändertes, Objekt.
20.10.2011
Matthias Hlawatsch 13,2k 4 9
1
Dazu finden sich im Internet Seiten wie Sand am Meer. Hier ein Sandkörnchen davon: MSDN Passing Arrays Using ref and out (C# Programming Guide)
20.10.2011
Jürgen Luhr 7,1k 2 9
0
Out-Parameter verhalten sich genau wie ref-Parameter, nur dass diesen nicht initialisierte Variablen übergeben werden können und der Aufruf nicht mit ref, sondern mit out erfolgt.

Siehe auch hier:
http://openbook.galileocomputing.de/csharp/kap05.htm
20.10.2011
Eiger 1,9k 2 9
Eiger 1,9k 2 9
... und der Compiler erzwingt, dass out-Parameter in der Methode initialisiert werden.
Matthias Hlawatsch 20.10.2011

Stelle deine Parameter-Frage jetzt!