Streams Concatenation错误

时间:2011-11-07 15:45:58

标签: c# stream

我想将两个流组合成一个流。第一个流是用户定义的 stringStream 类,它继承自System.IO.Stream类,第二个流是 networkStream ,我创建了一个Stream数组,存储了这两个流并将其作为参数传递给用户定义的类 combinedStream 构造函数。以下是代码行

StringStream stringStream = new StringStream("test string");
Stream[] streamArray = new Stream[2];
streamArray[0] = stringStream;
streamArray[1] = nsStream;//NetworkStream instance parameter
CombinedStream combinedStream = new CombinedStream(streamArray);
this.nsStream = (NetworkStream)combinedStream;

我得到的错误:“无法将CombinedStream转换为NetworkStream” 可能是什么原因?

2 个答案:

答案 0 :(得分:3)

相当简单,因为CombinedStream(可能是你自己的类) a NetworkStream。我不会期待它。

最大的问题是为什么nsStream无论如何都应该是NetworkStream。您可以更改类型,只改为Stream吗?这应该没问题除非你正在使用任何NetworkStream特定的方法......如果你这样做,那么当你在那些方法上调用这些方法时你会发生什么? CombinedStream

答案 1 :(得分:1)

CombinedStream之类的声音未被定义为NetworkStream的子类。因此,最后一行:this.nsStream = (NetworkStream)combinedStream;将作为无效转化失败。