Einzelnen Beitrag anzeigen

Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Typecasting in C#

  Alt 18. Jan 2009, 23:53
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;
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat