03 2018 档案
摘要:查询表达式和LINQ to object(下) 连接 LINQ中的连接与Sql上面的连接的概念相似,只不过LINQ上面的连接操作的序列。LINQ有三种各类型的联结,但并不是都是用join关键字,首先来看与sql中的内连接(inner join)相似的join联结。 关于连接,我准备先说一个最重要的结
阅读全文
摘要:查询表达式和LINQ to object(上) LINQ中的概念介绍 序列 序列是LINQ的基础,它也是数据处理流模型的基础,让我们能只在需要的时候才对数据进行获取和处理。 在C#中的序列通过IEnumerable 和 IEnumerable<T> 接口进行封装,序列就像数据项的传送带——你每次只能
阅读全文
摘要:扩展方法 扩展方法有以下几个需求: 你想为一个类型添加一些 成员; 你不需要为类型的实例添加任何更多的数据; 你不能改变类型本身, 因为是别人的代码。 对于C#1和C#2中的静态方法,扩展方法是一种更优雅的解决方案。 语法 并不是任何方法都能作为扩展方法使用—— 它必须具有以下特征: 它必须在一个非
阅读全文
摘要:Lambda表达式和表达式树 先放一张委托转换的进化图 看一看到lambda简化了委托的使用。 lambda可以隐式的转换成委托或者表达式树。转换成委托的话如下面的代码: 转换成表达式树的话是下面的代码: 委托方面的东西前面都做了详细的介绍。我们主要学习表达式树 表达式树 表达式是当今编程语言中最重
阅读全文
摘要:C#的修饰符 废话少说,直接上总结: 一、在命名空间下: 二、成员
阅读全文
摘要:用智能的编译器来防错 本章的主要内容: 自动实现的属性:编写由字段直接支持的简单属性, 不再显得臃肿不堪; 隐式类型的局部变量:根据初始值推断类型,简化局部变量的声明; 对象和集合初始化程序:用一个表达式就能创建和初始化对象; 隐式类型的数组:根据内容推断数组的类型,从而简化数组的创建过程; 匿名类
阅读全文
摘要:结束C#2的内容:最后一些新性 这是本章要讲的内容: 分部类型:可以在多个源文件中为 一个类型编写代码。 特别适用于部分代码是自动生成, 而其他部分的代码为手写的类型。 静态类:对工具类进行整理, 以便编译器能明白你是否在不恰当地使用它们, 并使你的意图更清晰。 独立取值方法/ 赋值方法属性:属性终
阅读全文
摘要:迭代器模式 迭代器是C#里面非常非常非常重要的一个概念,它是序列、LINQ等一系列概念的基础。 手写一个迭代器 上面手写了一个迭代器,在这个迭代器内部嵌套了一个类实现IEnumerator。这是实现迭代器模式的C#标准代码。看起来很臃肿,如果我只想返回几个值,也必须这么写。 yield C#利用这个
阅读全文
摘要:委托 前言:C#1中就已经有了委托的概念,但是其繁杂的用法并没有引起开发者太多的关注,在C#2中,进行了一些编译器上的优化,可以用匿名方法来创建一个委托。同时,还支持的方法组和委托的转换。顺便的,C#2中增加了委托的协变和逆变。 方法组转换 方法组这个词的含义来自于方法的重载:我们可以定义一堆方法,
阅读全文
摘要:可空值类型 C#2推出可空类型来表示可以为null的值类型。这是一个呼声很高的需求,因为在常用的数据库中都是允许某些值类型可为空的。那么为什么值类型就不能为空呢?内存中用一个全0的值来表示null,但是全0的地址说明了这个内存空间是被清除了的。所以对象选择用这种方式来初始化。用byte类型来举个例子
阅读全文
摘要:这一章会描述在C#2中所做的主要的变化 泛型 泛型的概念中包含类型参数和类型实参,类型参数相当于类型实参的蓝图。 泛型类型分为未绑定泛型类型和已构造泛型类型。已构造泛型类型又分为开放的泛型类型和封闭的泛型类型。只要不是封闭的泛型类型,都是开放的泛型类型。泛型约束 ① :class 表示类型参数必须是
阅读全文
摘要:通过对C#1所搭建的核心基础的深入了解,可以知道之后的C#版本在C#1的基础上做了很多扩展,而这些扩展都是基于C#搭建的核心基础而来的。 委托 一、编写委托的过程 委托经常和C语言的“函数指针”挂钩。委托是方法参数化、函数式语言一个重要的表达方式。C#1中编写一个委托要经过四部: 1、声明委托类型
阅读全文
摘要:概念 协变和逆变来源于类型和类型之间的绑定,C#4.0开始在泛型的接口和委托上支持协变和逆变,不过在这个版本之前的委托也是支持协变和逆变的。比如数组就支持协变,但是这不是一个好的特性,这C#初期版本从java引入的一个特性,当时的设计者认为C#应该尽可能的像java的一些特性靠拢,因为java当时太
阅读全文
摘要:这两天一直在弄linux的安装过程。中间也遇到了不少的坑,主要是网络上的坑人的文章太多。都是坑,最后从redhat官网下载了iso文件,顺便看到官网推荐了一个fedora media writer的烤盘工具,顺便从github上面下载了来制作了U盘的启动。安装过程很顺利。 1、分区用的lvm,文件系
阅读全文

浙公网安备 33010602011771号