AcceptTcpClient()和基于TcpClient的类

时间:2011-11-24 03:18:55

标签: c# class inheritance tcpclient

我需要一个可以拥有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对象?

1 个答案:

答案 0 :(得分:1)

无法将类型(TcpClient)向下转换为更加派生的类型(MyClient)。您必须更新AcceptTcpClient才能返回MyClient个对象。