笔记的笔记----不低头但是要“回头”
最少我能明白我现在在做什么,也能够承担因此而引起的后果。
ADO只是提供一组接口标准,各厂商负责具体实现,难免兼容方面大打折扣;而ADO.NET加强了统一。
字符串的很多方法都是实例的,而char一般都是静态的;别忘了,一个是引用类型,一个是值类型。
ArrayList中的元素可以不是一个类型,但sort时会出错。
我们内心知道其实我们在作出重重承诺的时候就在撒谎。
StreamReader之类的读写要记得关闭,因为把更改先写到buffer上,不关闭最后不可以保存结果的。
由于无论源代码是用什么语言编写的所有开发工具都生成相同的中间语言,所以实现过程中的差异在进入通用语言环境后,就随之消失了。
new string (“A”,10) // 表示定义了一个10个A的字符串。
Callbacks are used to provide feedback from a server to a client asynchronously.
CTS定义了类型在运行时环境中的创建和管理方式;而CLS主要关注的是语言的交互操作性,它定义了不同语言编译为MSIL的方式。
结构不能定义无参数构造函数,也没有析构函数。
string is immutable。
接口把对象能做什么与如何做分离开。
const:常量的实际值是在编译时确定的。代码在从c#编译为MSIL时,编译器会把常量的值插入到最终的可执行文件的源数据中。常量只能是基本类型。所以常量发生变化,则依赖常量的其他类必须重新编译。
将一项开发议题简化并且实用化向来都是微软公司的目标。
类型安全避免了访问无效的内存地址。
调用方法时,CLR通过创建一个栈框架给方法分配内存,栈框架是一个基于栈的内存块,它的大小足以容纳传递给方法的参数和方法内部定义的局部变量。所有的应用程序都是通过一系列方法调用而建立的。在调用方法序列时,系统就会为每个方法创建一个StackFrame,并添加到调用栈中,这个过程建立了一个栈跟踪StackTrace,他是栈框架的一个有序集合,实际提供了应用程序调用方法序列的详细记录。
很多时候,JIT会使属性的访问快于字段的访问。
实际上,所有的委托都是多播的。单播委托是调用列表上只有一个方法的委托。但单播委托(通过构造方法)和多播委托(组合已有的委托)的创建大不相同,所以要把它们当成不同实体。
namespace 和源文件是代码的逻辑组,而程序集就是物理组。
每个程序集都包含元数据。它描述了代码中的类型和成员,替代了c++的头文件,接口定义语言和com开发人员使用十年的类型库。还列出了代码中引用类型和成员。元数据为CLR提供了在运行期间加载类型和调用方法所需的所有信息。CLR还使用元数据加强其安全性。
by千冰念@YITIAN Studio
程序员的路是一行一行走出来的,不管多困难,我能做的只是,绝不低头。