第二章 C#基础

1、C#命令行编辑器csc.exe

    csc First.cs

2、与Java与C++不同,C#的Main函数是大写的。

3、C#的变量在引用前必须初始化,否则当作错误来看待。

4、C#有15个预定义类型,其中13个是值类型,2个是引用类型(string和object)。

5、decimal不是基本类型,所以在计算时使用该类型会有性能损失。

6、如果变量声明为bool类型,就可能使用true或false,如果使用0表示false,使用1表示true就会出错。

7、C++的char表示一个8位字符,而C#的char包含16位。

8、所有的类型都隐含地最终派生于System.Object类。

9、string与引用类型在常见的操作上有一些区别。例如,修改其中一个字符串,就会创建一个全新的string对象,而另一个字符串没有改变。

10、switch语句的case子句的排放顺序是无关紧要的,甚至可以把default子句放在最前面。case的值必须是常量表达式。

11、命名空间支持嵌套,但不允许在另一个嵌套的命名空间中声明多部分的命名空间。

12、命名空间与程序集无关。同一个程序集中可以有不同的命名空间,也可以在不同的程序集中定义同一个命名空间的类型。

13、命名空间可以起别名,语法如下:

      using alias = NamespaceName;

      命名空间的修饰符是::,即alias::ClassName。

14、给Main()方法指定什么访问级别并不重要,即使把该方法标记为private,它也可以运行。

15、如果存在多个Main方法,编译器就会返回一个错误,但可以使用/main选项,其后跟Main方法所属类的全名(包括命名空间),明确告诉编译器把哪个方法作为程序的入口点:

      csc MainExample.cs /main:Wrox.ProCSharp.Basic.MathExample

16、枚举类型都是值类型。System.Enum是一个抽象类(abstract class),所有枚举类型都直接继承自它,当然也同时继承了它的所有成员。所有的值类型都是System.ValueType的后代,枚举类型也不例外,枚举类型直接继承自System.Enum,而System.Enum却又直接继承自System.ValueType的,所以,枚举类型也是System.ValueType的后代。
值类型都是System.ValueType的后代”,但System.ValueType的后代不全是值类型,System.Enum就是唯一的特例!在System.ValueType的所有后代中,除了System.Enum之外其它都是值类型。

posted @ 2010-12-13 18:10  涂墨留香  阅读(323)  评论(0编辑  收藏  举报