国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

委托返回類型的協(xié)變性

2019-11-17 02:58:08
字體:
供稿:網(wǎng)友

委托返回類型的協(xié)變性

2014-08-18 08:43 by 張小驢同學(xué), ... 閱讀, ... 評(píng)論, 收藏, 編輯
    class PRogram    {        static void Main(string[] args)        {            StreamFactory factory = GenerateSampleData;//(3)            using (Stream stream = factory())//(4)            {                int data;                while ((data=stream.ReadByte())!=-1)                {                    Console.WriteLine(data);                }            }            Console.Read();        }        private delegate Stream StreamFactory();//(1)        static MemoryStream GenerateSampleData()//(2)        {            byte[] buffer = new byte[16];            for (int i = 0; i < buffer.Length; i++)            {                buffer[i] = (byte)i;            }            return new MemoryStream(buffer);        }    }

我們聲明委托類型的返回類型是Stream(1),但GenerateSampleData方法(2)的返回類型是MemoryStream。負(fù)責(zé)創(chuàng)建委托實(shí)例的那一行(3)執(zhí)行前面見過的轉(zhuǎn)變換,并利用返回類型的協(xié)變性來允許GenerateSampleData座位StreamFactory的操作使用。到調(diào)用委托實(shí)例的時(shí)候(4),編譯器已經(jīng)不知道返回的是一個(gè)MemoryStream——如果將stream變量的類型變成MemoryStream,會(huì)報(bào)告一個(gè)編譯錯(cuò)誤。

摘抄自《深入理解C#》第五章,5.3.2 委托返回類型的協(xié)變性


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 郑州市| 弋阳县| 濉溪县| 九龙县| 武威市| 建宁县| 视频| 东光县| 无为县| 临夏县| 勐海县| 固始县| 长沙市| 锦屏县| 武平县| 华宁县| 盐源县| 浙江省| 湖北省| 诏安县| 隆昌县| 湖州市| 稻城县| 雷波县| 云阳县| 城固县| 都兰县| 汽车| 凉城县| 普洱| 锦屏县| 明光市| 嫩江县| 边坝县| 商城县| 元谋县| 广平县| 兴安县| 弥渡县| 炎陵县| 旌德县|