Zitat von
Neutral General:
Hi,
In Delphi geht ja folgendes:
Delphi-Quellcode:
var x: TObject;
y: TButton;
begin
x := y;
end;
Das geht in C# nicht.
Natürlich ginge das in C#!
Zitat:
Ich habe meine SocketEx-Klasse von Socket abgeleitet und mein Problem ist gerade, dass Socket.Accept() ein Socket zurück gibt und er mir das weder implizit noch explizit konvertieren will.
Code:
SocketEx tmp;
tmp = (SocketEx)server.Accept();
Das compiliert zwar, wirft aber eine
Exception. Weiß jemand wies geht?
Gibt "Accept" denn auch wirklich eine Instanz zurück, die SocketEx ode reiner seiner Nachfahren ist?
In Delphi kannst du alles auf alles casten, weil Delphi zur Laufzeit nicht Typsafe ist.
.Net IST typesafe. Du kannst nicht eine Referenz von Socket als SocketEx nutzen, wenn die Referenz nicht auf eine Instanz von SocketEx oder einen Nachfahren zeigt.
das hier würde gehen:
Code:
Socket ref1 = new SocketEx();
SocketEx ref2 = (SocketEx)ref1;