我想将两个流组合成一个流。第一个流是用户定义的 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” 可能是什么原因?
答案 0 :(得分:3)
相当简单,因为CombinedStream
(可能是你自己的类)不 a NetworkStream
。我不会期待它。
最大的问题是为什么nsStream
无论如何都应该是NetworkStream
。您可以更改类型,只改为Stream
吗?这应该没问题除非你正在使用任何NetworkStream
特定的方法......如果你这样做,那么当你在那些方法上调用这些方法时你会发生什么? CombinedStream
?
答案 1 :(得分:1)
CombinedStream
之类的声音未被定义为NetworkStream
的子类。因此,最后一行:this.nsStream = (NetworkStream)combinedStream;
将作为无效转化失败。