2011-11-24 50 views
2

我需要一個類,將有一切的TcpClient有+一對額外的領域,所以我創建了一個基於TcpClient的一類:AcceptTcpClient()和階級基礎的TcpClient

public class MyClient: TcpClient 
{ 
    public string winUser; 
    public bool needHelp; 
    public bool needSignOff; 

    public MyClient() : base() { 
     this.needHelp = false; 
     this.needSignOff = false; 
     this.winUser = "empty"; 
    } 
} 

現在我需要所有傳入連接是

MyClient clientConnection = (MyClient)this.helpServer.AcceptTcpClient(); 

的問題是,AcceptTcpClient()產生的TcpClient類對象,我不斷收到此異常,當我嘗試連接到服務器:

爲這個類的對象創建

listenServer():無法強制類型爲「System.Net.Sockets.TcpClient」的對象鍵入「Server.MyClient」。

如何將AcceptTcpClient()提供給我的TcpClient對象轉換爲MyClient對象?

+0

這是根本不可能的。 – SLaks

回答

1

不可能將類型(TcpClient)向下轉換爲更多派生類型(MyClient)。您必須更新AcceptTcpClient以返回MyClient對象。

+0

如果你願意,你可以把它寫成擴展名'AcceptTcpMyClient'等嗎?如果有的話,有沒有關於如何獲得源代碼的任何細節? – cossacksman