Zitat von
Jürgen Thomas:
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
Das Problem ist eben, dass Accept() eben KEINE SocketEx Instanz zurückgibt, sondern nur eine Socket-Instanz. D.h. der Cast durch as liefert mir null.
Zitat von
Khabarakh:
Beschreibe doch einmal näher, was du mit deiner SocketEx-Klasse vorhast. Wenn es ein Wrapper werden soll, ist Vererbung der falsche Weg.
Ich weiß, dass es der falsche Weg wäre. Aber ich will im Prinzip der Socketklasse nur (im Moment) eine weitere Variable hinzufügen.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."