C#协变与抗变详解-创新互联
-------------------------------------------------Animal.cs
创新互联服务项目包括三山网站建设、三山网站制作、三山网页制作以及三山网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,三山网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到三山省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication2 { public class Animal { } }
-------------------------------------------------Dog.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication2 { public class Dog:Animal { } }
-------------------------------------------------IOut.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication2 { public interface IOut//协变 { T Xb();//T 只能作为返回值 } }
-------------------------------------------------IIn.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication2 { public interface IIn//抗变 { void Kb(T t);//T 只能作为参数 } }
-------------------------------------------------ListOutIn.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication2 { public class ListOutIn: IOut , IIn { public T Xb() { throw new NotImplementedException(); } public void Kb(T t) { throw new NotImplementedException(); } } }
-------------------------------------------------主程序
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { //out --> 协变--> 输出--> 隐式转换 //in --> 抗变--> 输入--> 显示转换 //协变 IOutoa = new ListOutIn (); IOut od = new ListOutIn (); oa = od;//因为接口是协变的,隐式转换成功 //抗变 IIn ia = new ListOutIn (); IIn id = new ListOutIn (); id = ia;//因为接口是抗变的,显示转换成功 } } }
创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。
当前文章:C#协变与抗变详解-创新互联
分享路径:http://scyanting.com/article/ceejgg.html