unterschied ref, output
-
Hi!
rolfi schrieb:
was ich so mibekommen habe hat das mit der initialisierung
des params. den man übergibt zu tun?Genau. Ref-Parameter müssen bei Aufruf initialisiert sein. Out-Parameter
müssen bei Aufruf noch nicht initialisiert sein, müssen aber in der Methode
einen Wert zugewiesen bekommen.rolfi schrieb:
ist in c# eine int i; nicht auch schon initialisiert?
Nein.
Jockel
-
Sobald man "out" als Parametertyp angibt, muß die Funktion den Parameter zwingend setzen, während eine Referenz("ref") meistens benutzt wird, wenn man sowohl einen Wert bei Übergabe hat als auch den Wert wieder verändern will.
Beispielpublic void f1(out int x) { x = 10; } public void f2(ref int x) { x = x + 42; } public void Main() { int x1; int x2 = 100; f1(out x1); <- x1 = 10; f2(ref x2); <- x2 = 142; // aber f1(out x2); // Wert wird überschrieben, ohne benutzt zu werden f2(ref x1); // Fehler: Wert ist uninitialisiert! }
-
hi,
wo liegt hier der unterschied? danke im vorhinein...
bye
-
wo liegt hier der unterschied?
x2 wurde initialisiert und x1 nicht - ließ dir nochmal aufmerksam die antworten durch
-
hi,
lies mal die überschrift;-)
also es geht um den unterschied: unterschied Equals, GetHashCode()bye
-
WTF?
-
Optimizer hat es doch schon klar und deutlich beschrieben....
-
rofli hat "unterschied Equals, GetHashCode()" als Antwort-Titel geschrieben.
Sowas überliest man ziemlich schnell. Am besten gar nicht nutzen!
-
mach nen neuen thread...bye
-
Ok, sorry. In diesem Forum benutzt keiner die Titel, sowas sieht man nicht. Am besten, du machst wirklich einen neuen Thread dafür.
-
rolfi das Feld musst du wenn du eine Antwort schreibst nicht ausfüllen. Es macht 0 Sinn da irgendwie Hm oder ähnliches reinzuschreiben.
-
und deckel drauf...