首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    其他的优点还有待发现. 1.2命名实参 如果一个系统中有两个可选参数, 而我们想省略掉第一个可选参数怎么办呢?...因为List实现了IEnumerable接口)....10 // 所以 IEnumerable泛型类型参数T支持协变性,所以可以 11 // 将List转化为IEnumerable(这个是继承的协变性支持的...(2)协变和逆变只适用于引用类型, 值类型不支持协变和逆变(例如Listint>无法转化为IEnumerable) (3)必须显式地用in或out来标记类型参数 (4)委托的可变性不要再多播委托中使用...要让编译器通过, 我们必须使用强制类型转换, 把object转换为int. 即obj = (int)obj + 10; 但是动态类型的引入到底有什么好处呢? 1,可以减少强制类型转换的使用.

    1.4K80

    C#3.0新增功能06 对象和集合初始值设定项

    row, int column] { // 嵌入的数组将酌情抛出超出范围的异常。...var pet = new { Age = 10, Name = "Fluffy" }; 利用匿名类型,LINQ 查询表达式中的 select 子句可以将原始序列的对象转换为其值和形状可能不同于原始序列的对象...新的匿名类型中的每个对象都具有两个公共属性,这两个属性接收与原始对象中的属性或字段相同的名称。 你还可在创建匿名类型时重命名字段;下面的示例将 UnitPrice 字段重命名为 Price。...下面的示例演示了两个简单的集合初始值设定项: Listint> digits = new Listint> { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; Listint>...从 C# 6 开始,可以使用以下语法初始化字典和其他关联容器。

    89410

    最佳编码实践——单一职责原则

    这个时候就要进行重构,将多职责类拆解为多个单职责类。通过委托和抽象,包含多个变更理由的类应该把一个或多个职责委托给其他的单职责类。 之前看过一篇文章,讲为什么面向对象比面向过程更能适应业务变化?...仔细分析一下代码,原始的ProcessTrades方法代码可以分为三个部分:从流中读取交易数据、将字符串数据转换为TradeRecord实例、将交易数据持久化到永久存储。... ParseTrades(IEnumerable tradeData) { var trades = new List();...Console.WriteLine("INFO: {0} trades processed", trades.Count()); } 其中ParseTrades方法的实现比较特殊,负责的是将字符串数据转换为... Parse(IEnumerable tradeData) { var trades = new List()

    71860

    走进 LINQ 的世界

    支持 IEnumerable 或派生接口(如泛型 IQueryable)的类型称为可查询类型。   可查询类型不需要进行修改或特殊处理就可以用作 LINQ 数据源。...= from cust in Customer 2 select new {Name = cust.Name, City = cust.City}; 3.3 将内存中的对象转换为...但是,如果您在 Visual Studio IDE 中调用 IntelliSense 完成列表,那么您不仅将看到 Where 方法,而且还会看到许多其他方法,如 Select、SelectMany、Join...将代码编写为匿名方法或泛型委托或表达式树是一种便捷的方法,否则编写起来就要麻烦得多。=> 是 lambda 运算符,可读为“goes to”。...lambda 表达式与查询语法中的表达式或任何其他 C# 表达式或语句中的表达式相同;它可以包括方法调用和其他复杂逻辑。“返回值”就是表达式结果。

    4.6K30

    C# 学习笔记(15)—— C# 4.0

    如下面代码中定义的方法就包含3个参数,一个必备参数和两个可选参数 static void Test(int x, int y = 10, string name = "") { } 在以上代码中,参数...,这样编译器将判断参数的名称是否正确,然后将指定的值赋给对应的参数,从而达到只省略第二个参数的目的 泛型的可变性 在 C# 2.0 中,泛型并不具备可变形,这种可变形是指协变性和逆变性。...引入out关键字来标注泛型参数,以示支持协变性,为了更好的说明,下面使用 .Net 类库中的public interface IEnumerable接口为例,做泛型协变性的演示: class...协变和逆变只适用于引用类型,值类型不支持协变和逆变(因为可变性存在引用转换的过程,而值类型变量存储的就是对象本身,并不是对象的应用),所以Listint>无法转换为IEnumerable 必须显示地使用in或out来标记类型参数 委托的可变性不要在多播委托中使用

    25820
    领券