《C#图解教程》读书笔记1-2章——C#和.NET
来源:互联网 发布:linux 调试工具 编辑:程序博客网 时间:2024/05/19 22:03
这本书讲解C#语言十分详细,我将其中的重要内容整理成条款,以备忘。
1. .NET由三部分组成:CLR,编码工具和BCL。CLR负责内存管理、代码安全验证、代码执行、垃圾收集。.NET提供平台调用(P/Invoke),允许调用Windows API,而且还可以和COM进行交互操作。
2. .NET开发人员可以不必了解COM的知识,无需考虑诸如IUnknown接口,类型库,引用计数,注册表以及HRESULT(COM 使用HRESULT)数据类型返回运行时错误代码,而.NET不使用HRESULT,因为所有的运行时错误都会产生异常。
3. .NET语言的编译器接受源代码文件,输出文件为程序集。程序集中的代码并不是本地代码,而是CIL。程序集中包含CIL,程序集中使用的类型的元数据以及对其他程序集引用的元数据。
4. CLR在运行时首先检查程序集的安全特性,然后在内存中分配空间,再把程序集中被调用到的代码送进JIT。程序集中的CIL只有在被调用到时才会被JIT编译成本地代码,然后就被缓存起来以备在后来的程序中执行,即不被调用的代码不会被编译成本地代码,而且被调用到的代码只被编译一次。一旦CIL被编译成本地代码,CLR就会在运行时进行管理,如:释放内存、检查数组边界、检查参数类型、管理异常等。
5. 运行在CLR,并且在运行时受CLR控制的代码叫做托管代码,反之为非托管代码。
6. CLI(公共语言基础结构) 是一组阐述了系统的架构、规则和约定的规范。包含CTS:定义了一组丰富的内置类型,定义了每种类型确定的详细的特性,而且所有支持.NET的语言提供的类型通常会映射到CTS中已定义的内置类型集的某一个特殊子集;CLS:详细说明了支持.NET语言的规则、属性和行为,其主题包括数据类型、类结构和参数传递。
7. 任何以.NET平台作为目标的语言必须建立它的数据类型与CTS的类型间的映射。所有.NET语言共享这一类型系统,实现他们之间无缝的互操作,这个方案提供了语言之间的继承性。
8. 由于CLS是CTS的子集,这意味着一种语言特征可能符合CTS标准,但却超过了CLS的规范,如:C#支持无符号数字类型,该特征能通过CTS测试,但CLS却仅仅识别有符号数字类型。因此,如果用户在一个组件类使用C#的无符号类型,就可能无法与不支持无符号类型的语言(如VB.NET)设计的组件实现互操作,但并非不可能,实际上,用户能够安全实现含有private成员的组件,CLS兼容性问题。但如果用户需要.NET语言的互操作性,那么用户的组件中的public成员必须完全符合CLS规范。
9. @字符只能放在标识符的首位,标识符的命名风格有两种:Pascal风格,如:CarDeck,建议用于类型名和成员名;Camel风格,如:totalCycleCount,建议用于本地变量和方法参数。
10. 两个公共约定:字段名称使用下划线开头:example或使用m_开头:m_example。
11. 在C#中,可以使用任意的占位符和任意数量的值,值可以以任何顺序使用,值可以在格式字符串中替换任意次。例如:Console.WriteLine(”Three integers are {1}, {0}, {1}.”, 3, 6); 输出为Threeintegers are 6, 3,6.
12. 占位符不能引用值列表以外位置的值,如果这样做了,不会产生编译错误,但会产生运行时错误(异常)。
- 《C#图解教程》读书笔记1-2章——C#和.NET
- 《C#图解教程》第1章 C#和.NET框架 读书笔记
- 《C#图解教程》读书笔记第5章——方法
- 《C#图解教程》读书笔记第14章——数组
- 《C#图解教程》读书笔记第15章——委托
- 《C#图解教程》读书笔记第16章——事件
- 《C#图解教程》读书笔记第17章——接口
- 《C#图解教程》读书笔记第18章——转换
- 《C#图解教程》读书笔记第19章——泛型
- 《C#图解教程》读书笔记第19章——泛型
- 《C#图解教程》第2章 C#编程概述 读书笔记
- 《C#图解教程》读书笔记3-4章——类型、存储、变量和类基础
- 《C#图解教程》读书笔记第7章——类和继承
- 《C#图解教程》读书笔记8-9章——表达式和运算符、语句
- 《C#图解教程》读书笔记第10章——命名空间和程序集
- 《C#图解教程》读书笔记11-12-13章——异常、结构和枚举
- 《C#图解教程》读书笔记第6章——类进阶
- 《C#图解教程》第4章 类的基本概念 读书笔记
- 重写hashCode( )之后
- 胡诌Spring MVC
- Socket
- slicing
- 工作流模式
- 《C#图解教程》读书笔记1-2章——C#和.NET
- 实例:用UL制作横向CSS导航菜单
- 网页设计到底是美术?是技术?还是...?
- 回车和换行
- Html 标签 Title 没闭合造成的问题
- Android SDK中的API Demos的所有自带例子的运行结果 (4)
- 将JDBC结果集转成XML格式文件
- Joomla! 系统间同步策略
- 关于软件设计的心得