文章分类 - 《C# in Depth:深入理解C#》读书笔记
摘要:作者:田小计划 出处:http://www.cnblogs.com/wilber2013/ 最近在看深入理解C#,发现这是一本很不错的书,将很多C#的知识点联系了起来,更像是一本C#历史书,从C# 1一步步介绍到C# 4。 所以准备一边看,一边整理读书笔记。那么就先从委托开始。 委托是C#中一个非常
阅读全文
posted @ 2017-05-08 16:07
James.Yu
摘要:作者:田小计划 出处:http://www.cnblogs.com/wilber2013/ 前面一篇文章介绍了委托的基本知识,接下来就进一步研究一下委托。 委托类型 其实,刚开始觉得委托类型是一个比较难理解的概念,怎么也不觉得下面的"AssembleIphoneHandler"是一个类型。 publ
阅读全文
posted @ 2017-05-08 16:06
James.Yu
摘要:作者:田小计划 出处:http://www.cnblogs.com/wilber2013/ 前面文章中介绍了委托相关的概念,委托实例保存这一个或一组操作,程序中将在某个特定的时刻通过委托实例使用这些操作。 如果做过GUI程序开发,可能对上面的描述会比较熟悉。在GUI程序中,单击一个button会触发
阅读全文
posted @ 2017-05-08 16:05
James.Yu
摘要:作者:田小计划 出处:http://www.cnblogs.com/wilber2013/ 本文将介绍C#类型系统中的值类型和引用类型,以及两者之间的一些区别。同时,还会介绍一下装箱和拆箱操作。 值类型和引用类型 首先,我们看看在C#中哪些类型是值类型,哪些类型是引用类型。 值类型: 基础数据类型(
阅读全文
posted @ 2017-05-08 16:04
James.Yu
摘要:作者:田小计划 出处:http://www.cnblogs.com/wilber2013/ 在C# 2.0中引入了泛型,泛型的出现解决了编码中的很多问题。相信大家一定经常用到"System.Collections.Generic"命名空间中的泛型集合类("Generic"就是泛型的意思)。在C# 1
阅读全文
posted @ 2017-05-08 16:03
James.Yu
摘要:作者:田小计划 出处:http://www.cnblogs.com/wilber2013/ 前一篇文章介绍了泛型的基本概念。在本文中,我们看一下泛型中两个很重要的特性:类型约束和类型推断。 类型约束 相信你还记得前面一篇文章中的泛型方法,在这个泛型方法中,我们就使用了类型约束。 类型约束(type
阅读全文
posted @ 2017-05-08 16:02
James.Yu
摘要:前面两篇文章介绍了C#泛型的基本知识和特性,下面我们看看泛型是怎么工作的,了解一下泛型内部机制。 泛型内部机制 泛型拥有类型参数,通过类型参数可以提供"参数化"的类型,事实上,泛型类型的"类型参数"变成了泛型类型的元数据,"运行时"在需要的时候会利用他们构造恰当的类型,通过这些类型,我们有可以实例化
阅读全文
posted @ 2017-05-08 16:01
James.Yu
摘要:作者:田小计划 出处:http://www.cnblogs.com/wilber2013/ 在程序开发中,有时候需要值类型也为可空类型,比如,在数据库中,我们可以把一个日期Datetime设置为null。 在C# 2.0中就出现了可空类型,允许值类型也可以为空(null),可空类型的实现基于C#泛型
阅读全文
posted @ 2017-05-08 16:00
James.Yu
摘要:作者:田小计划 出处:http://www.cnblogs.com/wilber2013/ 前面的文章介绍过,C# 1.0中出现委托这个核心概念,在C# 2.0中,委托得到了很大的改进。C# 2.0中委托的改进为C# 3.0中的新特性提供了铺垫,当我们了解了匿名方法后,Lambda的学习就会变得相对
阅读全文
posted @ 2017-05-08 15:59
James.Yu
摘要:前面一篇文章看到了C# 2.0中通过匿名方法来简化委托,下面来看看匿名方法中的变量。 闭包和不同的变量类型 闭包的基本概念是:一个函数除了能够通过提供给它的参数与环境交互之外,还能同环境进行更大程度的互动。对于C# 2.0中出现的匿名方法的闭包表现为,匿名方法能使用在声明该匿名方法的方法内部定义的局
阅读全文
posted @ 2017-05-08 15:58
James.Yu
摘要:作者:田小计划 出处:http://www.cnblogs.com/wilber2013/ 在.NET中,迭代器模式是通过IEnumerator和IEnumerable接口以及它们的泛型版本来实现的。如果某个类实现了IEnumerable接口,就说明它可以被迭代访问,调用GetEnumerator(
阅读全文
posted @ 2017-05-08 15:57
James.Yu
摘要:作者:田小计划 出处:http://www.cnblogs.com/wilber2013/ 在C# 3.0中,几乎每个新特性都是为LINQ服务的。所以,本文将介绍下面几个在C# 3.0中引入的新特性: 自动实现的属性 隐式类型的局部变量 对象和集合初始化程序 隐式类型的数组 匿名类型 其实这几个特性
阅读全文
posted @ 2017-05-08 15:56
James.Yu
摘要:作者:田小计划 出处:http://www.cnblogs.com/wilber2013/ 当我们想为一个现有的类型添加一个方法的时候,有两种方式:一是直接在现有类型中添加方法;但是很多情况下现有类型都是不允许修改的,那么可以使用第二种方式,基于现有类型创建一个子类,然后在子类中添加想要的方法。 当
阅读全文
posted @ 2017-05-08 15:55
James.Yu
摘要:作者:田小计划 出处:http://www.cnblogs.com/wilber2013/ 在C# 2.0中,通过方法组转换和匿名方法,使委托的实现得到了极大的简化。但是,匿名方法仍然有些臃肿,而且当代码中充满了匿名方法的时候,可读性可能就会受到影响。C# 3.0中出现的Lambda表达式在不牺牲可
阅读全文
posted @ 2017-05-08 15:55
James.Yu
摘要:作者:田小计划 出处:http://www.cnblogs.com/wilber2013/ 在C# 3.0之前,我们对不同的数据源(数据集合、SQL 数据库、XML 文档等等)进行操作(查询、筛选、投影等等),会使用不同的操作方式。 C# 3.0中提出了LINQ(Language Integrate
阅读全文
posted @ 2017-05-08 15:49
James.Yu

浙公网安备 33010602011771号