c# - AcceptTcpClient() 和基于 TcpClient 的类

标签 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 对象?

最佳答案

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

关于c# - AcceptTcpClient() 和基于 TcpClient 的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8251860/

相关文章:

javascript - 模块模式对象可以从构造函数模式对象继承吗?

c++ - 访问我只想存在于派生类中的函数

c# - 为不同数据库之间的共享功能创建通用/抽象 "DBContext"类

c# - 仅显示基于配置的指定属性

c# - 最小 API 结果。确定不返回完整对象

c# - 无法使用 Unity 解析的类型 [MVC 5]

java - Python:像 Java 中的静态类变量?

c# - 找出当前用户的用户名-当多个用户登录时

c++ - 从外部类访问嵌套的内部类结构

java - 如何将Java类转换为另一个类