随笔分类 - .NET:C#各版本新功能
摘要:系列目录 【已更新最新开发文章,点击查看详细】 在 C# 3.0 及更高版本,当属性访问器中不需要任何其他逻辑时,自动实现的属性会使属性声明更加简洁。 它们还允许客户端代码创建对象。 当你声明以下示例中所示的属性时,编译器将创建仅可以通过该属性的 get 和 set 访问器访问的专用、匿名支持字段。
阅读全文
摘要:系列目录 【已更新最新开发文章,点击查看详细】 属性是一种成员,它提供灵活的机制来读取、写入或计算私有字段的值。 属性可用作公共数据成员,但它们实际上是称为访问器的特殊方法。 这使得可以轻松访问数据,还有助于提高方法的安全性和灵活性。 属性概述 属性允许类公开获取和设置值的公共方法,而隐藏实现或验证
阅读全文
摘要:系列目录 【已更新最新开发文章,点击查看详细】 在 C# 中,协变和逆变能够实现数组类型、委托类型和泛型类型参数的隐式引用转换。 协变保留分配兼容性,逆变则与之相反。 以下代码演示分配兼容性、协变和逆变之间的差异。 对方法组的协变和逆变支持允许将方法签名与委托类型相匹配。 这样,不仅可以将具有匹配签
阅读全文
摘要:系列目录 【已更新最新开发文章,点击查看详细】 迭代器可用于逐步迭代集合,例如列表和数组。 迭代器方法或 get 访问器可对集合执行自定义迭代。 迭代器方法使用 yield return 语句返回元素,每次返回一个。 到达 yield return 语句时,会记住当前在代码中的位置。 下次调用迭代器
阅读全文
摘要:系列目录 【已更新最新开发文章,点击查看详细】 可以为 null 的类型是 System.Nullable<T> 结构的实例。 可以为 null 的类型可表示一个基础类型的所有值 T,还可以再表示一个 null 值。 基础类型 T 可以是任何不可为 null 的值类型。 T 不能是引用类型。 例如,
阅读全文
摘要:系列目录 【已更新最新开发文章,点击查看详细】 在 2.0 之前的 C# 版本中,声明委托的唯一方式是使用命名方法。 C# 2.0 引入匿名方法,在 C# 3.0 及更高版本中,Lambda 表达式取代匿名方法作为编写内联代码的首选方式。 但是,本主题中有关匿名方法的信息也适用于 Lambda 表达
阅读全文
摘要:系列目录 【已更新最新开发文章,点击查看详细】 C# 语言和公共语言运行时 (CLR) 的 2.0 版本中添加了泛型。 泛型将类型参数的概念引入 .NET Framework,这样就可以设计具有以下特征的类和方法:在客户端代码声明并初始化这些类和方法之前,这些类和方法会延迟指定一个或多个类型。 泛型
阅读全文
摘要:系列目录 【已更新最新开发文章,点击查看详细】 分部类型 拆分一个类、一个结构、一个接口或一个方法的定义到两个或更多的文件中, 每个源文件包含类型或方法定义的一部分,编译应用程序时将把所有部分组合起来。 分部类 在以下几种情况下需要拆分类定义: 处理大型项目时,使一个类分布于多个独立文件中可以让多位
阅读全文