您的位置:首页 > 编程语言 > C#

深入理解 c# 第五章 演示委托类的返回类型的协变性

2018-04-08 11:22 609 查看
class Covariance
{
delegate Stream StreamFactory();  //声明返回Stream的委托类型

static MemoryStream GenerateSampleData()  //声明返回MemoryStream的方法    
{
byte[] buffer = new byte[16];  //buffer数组  16个byte变量
for (int i = 0; i < buffer.Length; i++)
{
buffer[i] = (byte)i;
}
return new MemoryStream(buffer);
}

static void Main()
{
StreamFactory factory = GenerateSampleData; //利用协变性转换方法组  MemoryStream的转换成了 Stream类型,也可以用
//GenerateSampleData() 方法

using (Stream stream = factory())  //调用委托获得stream  执行GenerateSampleData()方法  stream是有16个byte字节的数组
{
int data;
while ((data = stream.ReadByte()) != -1)  //data就是数组里面的一个数,0-15 都没有不等于-1 都输出
{
Console.WriteLine(data);
}
}
}
}


输出
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c#