Einzelnen Beitrag anzeigen

Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#8

Re: Typecasting in C#

  Alt 19. Jan 2009, 09:12
Denkt doch nicht so kompliziert! So einfach geht es:
Code:
SocketEx ext = server.Accept() as SocketEx;
if (ext != null) // usw.
Begründung: Accept liefert eine Socket-Instanz. Wenn es sich dabei aufgrund der äußeren Umstände wirklich um eine SocketEx-Instanz handelt, kann es mit as einfach konvertiert werden. Dies hat außerdem den Vorteil, dass die as-Konvertierung im Fehlerfall null zurückliefert, ohne dass es zu einer Exception führt. Dies kann (besser: sollte in der Regel) vor der Fortsetzung geprüft werden.

Das besagte auch die obige Fehlermeldung:
Zitat:
Es ist eine explizite Konvertierung vorhanden. (Fehlt eine Umwandlung?)
nämlich "as" benutzen als explizite Konvertierung.

Gruß Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat