> Wenn ich das myB aber zuerst in eine myTempA-Variable speichere(cast) 
> und dann das myTempA überegeben (mit ref myTempA) funktioniert es.

Klar...
Wenn Du da erst ein cast draufmachst, ist es keine Variable mehr, die per
ref zurückgeschrieben/geändert werden kann, sondern schon was
"berechnetes"...

Das ist genauso wenn du sowas hättest:

void foo(ref int i){}
Folgendes funzt nicht:
foo(ref 1+4);
foo(ref a+4);
Aber das:
foo(ref a);

Durch den cast vorher geht auch keine Information verloren.

Allerdings habe ich den Verdacht, dass Du ref falsch verstehst:
Wenn Du nur ein A reingeben willst, das dann intern verändert wird, brauchst
Du kein ref. Das brauchst Du nur, wenn Du ein anderes A-Objekt rausgeben
willst als das was Du reingibst.

Beispiel1: Hierfür ist kein ref nötig:


void foo(A a) 
{
        a.bar = "baz";
        a.qux = 42;
}


Aber hierfür:

void foo(ref A a) 
{
        A a2 = new A();
        a2.bar = "baz";
        a2.qux = a.qux * 2;
        a = a2;
}


Claudius

_______________________________________________
Asp.net Mailingliste, Postings senden an:
Asp.net@glengamoi.com
An-/Abmeldung und Suchfunktion unter:
http://www.glengamoi.com/mailman/listinfo/asp.net

Antwort per Email an