我需要一个可以拥有TcpClient所有内容的类+一些额外的字段,所以我创建了一个基于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 :(得分:1)
无法将类型(TcpClient
)向下转换为更加派生的类型(MyClient
)。您必须更新AcceptTcpClient
才能返回MyClient
个对象。