Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将对象X强制转换为继承X的对象Y_C#_Casting - Fatal编程技术网

C# 将对象X强制转换为继承X的对象Y

C# 将对象X强制转换为继承X的对象Y,c#,casting,C#,Casting,我有一个X班,她是TcpClient的,还有一个TcpListener。我希望在调用AcceptTcpClient()时,它返回一个TcpClient,我将得到一个X类,或者能够将这个TcpClient“强制转换”到我的X类 我不能做像(X)TcpClient这样的事情,所以我有点迷路。这是不可能的。只有当对象具有正确的运行时类型时,才能向下转换 相反,您可以使用接受TcpClient的构造函数创建一个适配器,然后添加它自己的功能 class MyTcpClientAdapter { p

我有一个X班,她是TcpClient的,还有一个TcpListener。我希望在调用AcceptTcpClient()时,它返回一个TcpClient,我将得到一个X类,或者能够将这个TcpClient“强制转换”到我的X类


我不能做像(X)TcpClient这样的事情,所以我有点迷路。

这是不可能的。只有当对象具有正确的运行时类型时,才能向下转换

相反,您可以使用接受TcpClient的构造函数创建一个适配器,然后添加它自己的功能

class MyTcpClientAdapter
{
    private TcpClient tcpClient;

    public MyTcpClientAdapter(TcpClient tcpClient) {
        this.tcpClient = tcpClient;
    }

    // etc...
}

你有代码样本吗?你不能这么做。这里有一个类似的问题:好吧,这就是我的想法。可以在herited类上设置“基”吗?