摘要:异常 什么是异常 异常是程序中的运行时错误,它违反了系统约束或应用程序约束,或出现了在正常操作时未预料的情形。例如,程序试图除以0或试图写一个只读文件。当这些发生时,系统捕获这个错误并抛出(raise)一个异常。 如果程序没有提供处理该异常的代码,系统会挂起这个程序。例如,下面的代码在试图用0除一个 阅读全文
C#图解教程 第二十章 异步编程
2018-12-16 15:00 by GarfieldEr007, 331 阅读, 0 推荐, 收藏, 编辑
摘要:笔记 启动一个程序,系统在内存中创建一个新进程,进程内部是系统创建的线程,线程可以派生其他线程,这就有了多线程。 进程内的多个线程共享进程的资源,系统为处理器规划的单元是线程。 异步编程可以实现在新线程里面运行一部分代码,或改变代码的执行顺序。 本章介绍了以下几种异步编程方式,它们居多是并发的而非并 阅读全文
C#图解教程 第二十一章 命名空间和程序集
2018-12-16 15:00 by GarfieldEr007, 322 阅读, 0 推荐, 收藏, 编辑
摘要:命名空间和程序集 引用其他程序集 在第1章中,我们在高层次上观察了编译过程。编译器接受源代码文件并生称名称为程序集的输出文件。这一章中,我们将详细阐述程序集以及它们是如何生成和部署的。你还会看到命名空间是如何帮助组织类型的。 在迄今为止所看到的所有程序中,大部分都声明并使用它们自己的类。然而,在许多 阅读全文
C#图解教程 第十九章 LINQ
2018-12-16 14:59 by GarfieldEr007, 331 阅读, 0 推荐, 收藏, 编辑
摘要:LINQ 什么是LINQ 在关系型数据库系统中,数据被组织放入规范化很好的表中,并且通过简单且强大的SQL语言来进行访问。因为数据在表中遵从某些严格的规则,所以SQL可以和它们很好的配合使用。 然而,在程序中却与数据库相反,保存在类对象或结构中的数据差异很大。因此,没有通用的查询语言来从数据结构中获 阅读全文
C#图解教程 第十七章 泛型
2018-12-16 14:58 by GarfieldEr007, 451 阅读, 0 推荐, 收藏, 编辑
摘要:泛型 什么是泛型 到现在为止,所有在类声明中用到的类型都是特定的类型–或是程序员定义的,或是语言或BCL定义的。然而,很多时候,我们需要把类的行为提取或重构出来,使之不仅能用到它们编码的数据类型上,还能应用到其他类型上。 泛型可以做到这一点。我们重构代码并额外增加一个抽象层,对于这样的代码来说,数据 阅读全文
C#图解教程 第十八章 枚举器和迭代器
2018-12-16 14:58 by GarfieldEr007, 342 阅读, 0 推荐, 收藏, 编辑
摘要:枚举器和迭代器 枚举器和可枚举类型 第12章中,我们看到可以用foreach语句遍历数组。在本章,我们会进一步探讨数组,来看看为什么它们可以被foreach语句处理。我们还会研究如何使用迭代器为用户自定义类增加该功能。 foreach语句 数组foreach语句为我们依次取出数组中的每个元素。 为什 阅读全文
C#图解教程 第十六章 转换
2018-12-16 14:57 by GarfieldEr007, 347 阅读, 0 推荐, 收藏, 编辑
摘要:转换 什么是转换 要理解什么是转换,让我们先从声明两个不同类型的变量,然后把一个变量(源)的值赋值给另一个变量(目标)的简单示例开始讲起。在赋值前,源的值必须转换成目标类型的值。 转换(conversion)是接受一个类型的值并使用它作为另一个类型的等价值的过程 转换后的值应和源值一样的,但其类型为 阅读全文
C#图解教程 第十四章 事件
2018-12-16 14:56 by GarfieldEr007, 282 阅读, 0 推荐, 收藏, 编辑
摘要:事件 发布者和订阅者 很多程序都有一个共同的需求,既当一个特定的程序事件发生时,程序的其他部分可以得到该事件已经发生的通知。 发布者/订阅者模式(publisher/subscriber pattern)可以满足这种需求。 发布者(publisher) 发布某个事件的类或结构,其他类可以在该事件发生 阅读全文
C#图解教程 第十五章 接口
2018-12-16 14:56 by GarfieldEr007, 312 阅读, 0 推荐, 收藏, 编辑
摘要:接口 什么是接口 接口是指定一组函数成员而不实现它们的引用类型。所以只能类和结构来实现接口。 这种描述比较抽象,直接来看个示例。 下例中,Main方法创建并初始化了一个CA类的对象,并将该对象传递给PrintInfo方法。 只要传入的是CA类型的对象,PrintInfo就能正常工作。但如果传入的是C 阅读全文
C#图解教程 第十三章 委托
2018-12-16 14:55 by GarfieldEr007, 184 阅读, 0 推荐, 收藏, 编辑
摘要:委托 什么是委托 可以认为委托是持有一个或多个方法的对象。当然,正常情况下你不想“执行”一个对象,但委托与典型对象不同。可以执行委托,这时委托会执行它所“持有”的方法。 我们从下面的示例代码开始。具体细节将在本章剩余内容介绍。 代码开始部分声明了一个委托类型MyDel(没错,是委托类型不是委托对象) 阅读全文