加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

[读书笔记]C#学习笔记七: C#4.0中微小改动-可选参数,泛型的可变

发布时间:2020-12-15 04:42:37 所属栏目:百科 来源:网络整理
导读:p style="background: gray; color: #ffffff; font-size: 18pt;"前言 div class="cnblogs_code" TestMethod( , , TestMethod( , TestMethod( x, y = , name = Console.Write( } 打印结果如下图: TestMethod( , TestMethod( TestMethod( ,name : TestMethod(x

<p style="background: gray; color: #ffffff; font-size: 18pt;">前言

<div class="cnblogs_code">

                  TestMethod(,,         TestMethod(,   
     
       TestMethod( x, y = , name =           Console.Write(  }

打印结果如下图:

TestMethod(, TestMethod( TestMethod(,name : TestMethod(x: ,y: ,name: TestMethod( x, name = Console.WriteLine( }

打印结果如下图:

接口为例做演示:

List<> listObject = List<> List<> listStrs = List<> listObject.AddRange(listStrs); listStrs.AddRange(listObject); }

,该接口的定义为IEnumerable,因为其泛型参数有out关键字标识,泛型的类型参数T支持协变性,则可将List转化为IEnumerable(这是被继承的协变性支持的. 因为List实现了IEnumerable接口). 转化为IEnumerable

为例进行演示:

Main( List<> listobject = List<> List<> liststrs = List<> collection 类型的参数。 泛型类型参数T支持协变性,所以可以 转化为IEnumerable(这个是继承的协变性支持的) 接口委托支持协变性,所以可以把IEnumerable转化为——>IEnumerable类型。 listobject.AddRange(liststrs); IComparer<> objComparer = IComparer<> objComparer2 = 类型的 liststrs变量的sort方法接收的是IComparer类型的参数 这个类型的参数,要编译成功的话,必须能够转化为IComparer这个类型 泛型接口支持逆变,所以支持object转化为string类型 liststrs.Sort(objComparer); TestComparer : IComparer<> Compare( obj1, }

类型的参数,虽然传入的实参是IComparer类型,泛型接口支持逆变,所以可将object转化为string类型.

无法转化为IEnumerable)

obj = obj = obj + ; i = i = i + ;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读