第四章 N元语法 本章开篇的两句话很有意思,代表了当时两个学派的思想和矛盾. 一句是"有史以来最伟大的语言学家"乔姆斯基说的:"句子的概率,在任何已知的对于这个术语的解释中,都是一个完全无用的概念". 他提出了形式语言,坚信可以通过语法规则来处理文字,对概率不屑一顾. 而另一句是语言处理大师贾里尼克说的:"每当我开除一个语言学家,语言识别率就能提高一个百分比". 此前他曾有和语言学家不愉快的合作经历,加之当时概率学习方法取得了显著成果,因此也是心…
  5种基本数据类型 可以直接对值操作 判断引用类型 var result = instanceof Array 执行环境 每个执行环境都有一个与之关联的变量对象,环境中定义的所有变量和函数都保存在这个对象中 执行环境的销毁 某个执行环境中的所有代码执行完毕后 该环境被销毁 保存在其中的所有变量了函数定义也会随之销毁 作用域链中的对象 全局执行环境的变更对象始终都是作用域链中的最后一个对象 没有块级作用域 if 和 for 内的变量 外部也可以访问 标记清除 不同浏览器 只不过垃圾时间的长短不同…
<C#从现象到本质>读书笔记(九)第11章C#的数据结构 C#中的数据结构可以分为两类:非泛型数据结构和泛型数据结构. 通常迭代器接口需要实现的方法有:1)hasNext,是否还有下一个元素.2)Next,移动到下一个元素.3)Reset,重置. C#中对迭代器模式的实现就是IEnumerable接口. 使用yield关键字实现方法GetEnumerator.yield的延迟执行特性体现在:只有当需要取值时,才会执行,否则状态机的状态就停在0. foreach迭代时,不能直接更改集合成员的值,…
<C#从现象到本质>读书笔记(八)第10章反射 个人感觉,反射其实就是为了能够在程序运行期间动态的加载一个外部的DLL集合,然后通过某种办法找到这个DLL集合中的某个空间下的某个类的某个成员(通过反射可以访问该类所包含的所有成员,不论成员是公有还是私有). 在.NET中,查看和操作元数据的动作,称为反射. 通过反射我们可以:1)加载一个程序集,这称为动态加载程序集或者晚期绑定.2)获得程序集的托管模块(IL+元数据).3)获得程序集中(托管模块中的)类型对象(通过元数据).4)获得类型的成员和…
<C#从现象到本质>读书笔记(七)第9章 泛型 泛型的三大好处:类型安全,增强性能(避免装箱和拆箱),代码复用. 泛型方法是传入的参数至少有一个类型为T(尚未制定的类型,根据微软的命名规则,通常以T开头)的方法.T称为类型参数. 它的使用契机一般为:传入类型可能有很多种.但处理方式却相同的情景.这是可以不需要写很多歌重载,而考虑用泛型方法达到代码复用的目的. 同名的泛型方法和非泛型方法会被编译器看做不同的方法.即使都是泛型方法,不同个数的类型参数也会被编译为不同的方法. 泛型约束使得类型参数只…
<C#从现象到本质>读书笔记(五)第5章字符串 字符串是引用类型,但如果在某方法中,将字符串传入另一方法,在另一方法内部修改,执行完之后,字符串的只并不会改变,而引用类型无论是按值传递还是引用传递,值都会发生变化. 字符串的==操作符被重写为比较字符串的值而不是其引用. 当使用代码将字符串变量等于一个新的值时,堆上会出现一个新的字符串,然后,栈上的变量指向该新字符串.没有任何办法更改原来字符串的值.由于字符串所有非私有的属性和字段都是只读或常量,也没有任何办法修改字符数组的值,字符串的值也就不…
<C#从现象到本质>读书笔记(六)第二部分 C#特性 第8章委托和事件 从这一部分开始,知识点就相对少了,重要的是代码练习.奈何太高深的代码平常不怎么用,这些特性也不是经常写代码的. 委托是事件的基础. 委托不是类型的成员之一,但事件是.委托是一个密封类,可以看成是一个函数指针,它可以随情况变化为相同签名的不同函数. 方法的签名必须和委托一致,方法签名包括参数的个数.类型和顺序:方法的返回类型要和委托一致,注意,方法的返回类型不属于方法签名的一部分. 使用委托分为三步:1)定义委托.2)创建委…
<C#从现象到本质>读书笔记第3章C#类型基础(下) 常量以关键字const修饰.C#支持静态字段(类型字段)和实例字段. 无参属性的get方法不支持参数,而有参属性的get方法支持传入一个或更多参数,set方法支持传入两个或更多参数. 通过属性的封装,保留了它与外部交互的能力,又实现了一种可靠的读写机制. static关键字只能用于类而不能用于结构. 不能显式地为结构声明无参数地构造函数. 静态构造函数的目的是为了安全地给静态成员赋值. 当创建第一个实例之前,堆上没有类型对象,所以要调用静态…
<C#从现象到本质>读书笔记第二篇 第2章 C#类型基础(上) 类型指的是集合{类,结构,接口,枚举,委托}中的任意一个成员.任何拥有某类型的值(value)称为某类型的一个实例(instance). 类型可以被分为值类型(结构,枚举,整型,布尔型,datetime)以及引用类型(类.接口.指针.字符串.委托.数组). C#支持6种类型访问修饰符.访问范围大小排序为: 1)public:没有限制. 2)protected internal:只能在所在程序集.定义的类型或派生类型进行访问. 3)…
最近根据博客园大神的推荐,买了本<C#从现象到本质>.做一点读书笔记. 由于不懂IL和ildasm,winddg,太深奥,理解不了,就牛嚼草一样,先总结第一遍读书,自己总结的知识点了.不知道这样会不会侵权,如果侵权了,请告诉我,我撤销这些. 第一部分“基础知识” 第1章 .NET基础知识 CLR:公共语言运行时 CTS:公共语言系统 CLS:公共语言规范 FCL:框架类库 BCL:基础类库 CLI:公共语言基础设施 DLR:动态语言运行时 TPL:任务并行库 JIT:即时编译 COM:组件对象…