连载目录    [已更新最新开发文章,点击查看详细] 分部类型 拆分一个类.一个结构.一个接口或一个方法的定义到两个或更多的文件中, 每个源文件包含类型或方法定义的一部分,编译应用程序时将把所有部分组合起来.   分部类 在以下几种情况下需要拆分类定义: 处理大型项目时,使一个类分布于多个独立文件中可以让多位程序员同时对该类进行处理. 当使用自动生成的源文件时,你可以添加代码而不需要重新创建源文件. Visual Studio 在创建Windows 窗体.Web 服务包装器代码等时会使用这种方法…
连载目录    [已更新最新开发文章,点击查看详细] C# 4 引入了一个新类型 dynamic. 该类型是一种静态类型,但类型为 dynamic 的对象会跳过静态类型检查. 大多数情况下,该对象就像具有类型 object 一样. 在编译时,将假定类型化为 dynamic 的元素支持任何操作. 因此,不必考虑对象是从 COM API.从动态语言(例如 IronPython).从 HTML 文档对象模型 (DOM).从反射还是从程序中的其他位置获取自己的值. 但是,如果代码无效,则在运行时会捕获到…
连载目录    [已更新最新开发文章,点击查看详细] 在 C# 3.0 及更高版本,当属性访问器中不需要任何其他逻辑时,自动实现的属性会使属性声明更加简洁. 它们还允许客户端代码创建对象. 当你声明以下示例中所示的属性时,编译器将创建仅可以通过该属性的 get 和 set 访问器访问的专用.匿名支持字段. 下列示例演示一个简单的类,它具有某些自动实现的属性: // 该类是可变的.它的数据可以从类外部修改 class Customer { // 用于普通get和set的自动实现属性 public…
连载目录    [已更新最新开发文章,点击查看详细] 如果需要 I/O 绑定(例如从网络请求数据或访问数据库),则需要利用异步编程. 还可以使用 CPU 绑定代码(例如执行成本高昂的计算),对编写异步代码而言,这是一个不错的方案.C# 拥有语言级别的异步编程模型,它使你能轻松编写异步代码,而无需应付回叫或符合支持异步的库. 它遵循基于任务的异步模式 (TAP). 异步模型的基本概述 异步编程的核心是 Task 和 Task<T> 对象,这两个对象对异步操作建模. 它们受关键字 async 和 …
C#基础拾遗系列之二:使用ILSpy探索C#7.0新增功能点   第一部分: C#是一种通用的,类型安全的,面向对象的编程语言.有如下特点: (1)面向对象:c# 是面向对象的范例的一个丰富实现, 它包括封装.继承和多态性.C#面向对象的行为包括: 统一的类型系统 类与接口 属性.方法.事件 (2)类型安全:C#还允许通过dynamic关键字动态指定类型. 但是,C#仍然是一个主要的静态类型语言.之所以是一种强类型的语言,是因为它的类型规则是非常严格的,例如,不能够使用一个float类型的参数去…
连载目录    [已更新最新开发文章,点击查看详细] 在 C# 中,协变和逆变能够实现数组类型.委托类型和泛型类型参数的隐式引用转换. 协变保留分配兼容性,逆变则与之相反. 以下代码演示分配兼容性.协变和逆变之间的差异. // 分配兼容性. string str = "test"; // 将派生类型更高的对象分配给派生类型更低的对象 object obj = str; IEnumerable<string> strings = new List<string>(…
第一部分: C#是一种通用的,类型安全的,面向对象的编程语言.有如下特点: (1)面向对象:c# 是面向对象的范例的一个丰富实现, 它包括封装.继承和多态性.C#面向对象的行为包括: 统一的类型系统 类与接口 属性.方法.事件 (2)类型安全:C#还允许通过dynamic关键字动态指定类型. 但是,C#仍然是一个主要的静态类型语言.之所以是一种强类型的语言,是因为它的类型规则是非常严格的,例如,不能够使用一个float类型的参数去调用一个解释int 类型的函数,除非显式的把float转换为int…
Android 7.0 Nougat 为用户和开发者引入多种新功能.本文重点介绍面向开发者的新功能. 请务必查阅 Android 7.0 行为变更以了解平台变更可能影响您的应用的领域. 要详细了解 Android 7.0 的消费者功能,请访问 www.android.com. 多窗口支持 在 Android 7.0 中,我们为该平台引入了一个新的而且非常需要的多任务处理功能 — 多窗口支持. 现在,用户可以一次在屏幕上打开两个应用. 在运行 Android 7.0 的手机和平板电脑上,用户可以并…
连载目录    [已更新最新开发文章,点击查看详细] C#8.0提供了许多增强功能 01 Readonly 成员 可将 readonly 修饰符应用于结构的任何成员. 它指示该成员不会修改状态. 这比将 readonly 修饰符应用于 struct 声明更精细. 请考虑以下可变结构: public struct Point { public double X { get; set; } public double Y { get; set; } public double Distance =>…
连载目录    [已更新最新开发文章,点击查看详细] C# 7.0 向 C# 语言添加了许多新功能 01 out 变量 支持 out 参数的现有语法已在此版本中得到改进. 现在可以在方法调用的参数列表中声明 out 变量,而不是编写单独的声明语句: if (int.TryParse(input, out int result)) Console.WriteLine(result); else Console.WriteLine("Could not parse input"); 为清晰…