chapter 2/3 C#核心、对象和类型

来源:互联网 发布:龙之谷数据库怎么修改 编辑:程序博客网 时间:2024/05/16 10:05

关注的主要是C#与C++的不同点或者新增加的特性。

chapter 2  核心C#

1、初始化:方法的局部变量使用前必须初始化;类或者结构中的字段如果没有显式的初始化,默认构造函数会把字段初始化为标准的默认值(引用类型为空类型,数据类型为0)。

2、类型推断(type inference):关键字var。

3、局部变量的作用域冲突:同一方法中,循环里的局部变量不能隐藏方法中的同名局部变量(区别于C++)。

4、值类型和引用类型:值类型存储在栈中,引用类型存储在托管堆中(即堆中)。

5、decimal类型

6、预定义的引用类型:object/string;虽然string是一个引用类型,但当把字符串赋值时 ,在内存中会得到同一字符串的两个引用。

7、switch...case:禁止了所有case中失败的条件。

8、foreach(var temp in arrayOfInts):与for相比,省略了求集合的范围,但foreach循环不能改变集合中各项的值。

9、Main():方法必须是类或者结构的静态方法,返回类型必须是int或void。

10、预编译:#warning/#error ,#region/#endregion。

11、标识符:可以用Unicode字符,如:int 学生人数 = 48。

12、命名约定:Pascal大小写形式/camel大小写形式。


chapter 3  对象和类型

1、类的数据成员包括:字段,常量和事件成员;函数成员包括:方法,属性,构造函数,finalizer,运算符,索引器。

2、给方法传递参数:在C#中,默认的传参方式是值传递,利用ref关键字来指定按引用传递。对于复杂的数据结构,按引用传递的效率更高。  

      out关键字:传递的参数可以不初始化且 该变量通过引用传递。

3、重载:两个方法不能仅根据参数是声明为ref还是out来实现重载。

4、属性:一对方法或一对方法,在用户角度,它是一个字段。只读/只写/自动实现的属性。

5、构造函数:默认构造函数把没有初始化的字段初始化为标准的默认值(引用类型为空引用,值类型为0,bool为false),区别:C++默认构造函数对内置类型并不初始化。

      静态构造函数:初始化静态字段,静态构造函数只能访问类的静态成员,不能访问类的实例成员;静态构造函数在加载类时执行,实例构造函数在创建实例时执行。当然,实例函数可以访问静态字段。

      在构造函数中调用其他构造函数:利用this和base关键值。

      静态类:如果类只包含静态的方法和属性,类就是静态的。在功能上于私有静态构造函数创建的类相同,不能创建静态类的实例。

6、只读字段:readonly,在运行时初始化;const,编译时初始化。

7、结构:不支持继承;总是提供一个无参的默认构造函数,并禁止定义无参数数的构造函数。