Entwickler-Ecke
C# - Die Sprache - as
kostonstyle - Mi 27.01.10 12:33
Titel: as
Hallo
könnte mir jemand bitte erklären, was hier as für eine Bedeutung hat.
C#-Quelltext
1:
| (this.Properties["AppEventList"] as List<string>).Add("Activated"); |
Gruss kostonstyle
Nemag - Mi 27.01.10 12:59
As führt ein cast bzw- Konvertierung durch.
Dein Ausdruck (vor as) wird also in den Typ konvertiert der hinter dem as steht.
Im Gegesatz zur expliziten Konvertierung (int i = (int)"Ich bin keine Zahl") wird allerdings keine Exception geworfen sondern das erhaltene Objekt auf null gesetzt, wenn die Konvertierung fehlschlägt.
jaenicke - Mi 27.01.10 12:59
Man kann es auch so schreiben (und ist auch besser, mehr dazu gleich):
C#-Quelltext
1:
| ((List<string>)this.Properties["AppEventList"]).Add("Activated"); |
Beides führt einen Cast auf List<string> durch. As jedoch gibt null zurück, falls der Cast nicht erfolgreich war, der direkte Cast wirft eine Exception InvalidTypecast oder so.
Deshalb ist es hier umgekehrt wie in Delphi. In C# sollte man besser direkt casten oder nach as auf null prüfen.
Aber niemals direkt ein Objekt nach as benutzen wie oben passiert.
In Delphi passiert bei as genau das Umgekehrte. Da wird bei as die InvalidTypecast Exception geworfen, beim direkten Cast nicht. Dort muss man also beim direkten Cast aufpassen. :mrgreen:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!