一、原理
.NET框架有两个主要组成部分一是公共语言运行时(Common Language Runtime , CLR),二是.NET Framwork类库。C#与以往的C++语言以及其它类似语言不同,C#语言运行于一个托管的(managed)环境。用C#语言编写的代码,在公共语言运行时的上下文中执行。公共语言运行时负责管理内存和安全性,并将C#代码与其它非托管代码隔离,以使应用程序的正常操作不受恶意或设计不良的代码的影响。
二、常见注意
C#代码在.NET框架提供的受控环境下运行,不允许直接操作内存;
C/C++中指针已不在C#中出现了,C#只支持一个“.”;
和C++不同,C#不可以将数值类型数据赋给布尔型变量,也不可以在布尔型和其它数据类型之间转换。
C#中没有全局函数、没有全局变量和全局常量,所有的都必须封装在一个类中。这样减少了命名冲突的可能性,增强了程序的可读性。
在C#中每种数据类型都是一个类,他们具有格式化,序列化以及类型转化等方法。
C#中的数据类型包括两类:一种是值类型,一种是引用类型;C#中有两个内置的引用类型:Object和String类型;装箱是将值类型转化为引用类型Object,这使得值类型可以存储在垃圾回收堆中,而拆箱是从对象中提取值类型
数组,在C#中数组的大小可以是动态分配的,并且可以在任何时候重新分配空间,另外在System.Collections命名空间中还提供了很多可变长的数组对象,包括ArrayList、Hashtable、SortedList等。
String类型是直接从Object继承的密封类类型,String类的示例表示Unicode字符串。String类型的值可以写为字符串;关键字String只是预定义类System.String的别名
三、几个难点
构造函数和析构函数主要用来对对象进行初始化和回收对象资源
类的封装、继承和多态3种特性构成了面向对象程序设计思想的基础
域和属性、抽象和接口、泛型、事件和索引器、委托和匿名方法、迭代器、托管和委托、正则表达式、异常的处理