C#从C和C++继承的特点
编译:
程序直接编译成标准的二进制可执行形式.如果前面的Hello World程序被保存成一个
文本文件并被命名为Hello.cs,它将被编译成命名Hello.exe的可执行程序。
结构体:
一个C#的结构体与C++的结构体是相似的,因为它能够包含数据声明和方法.但是,不象C++,C#结构体与类是不同的而且不支持继承.但是,与Java相同的是,一个结构体可以实现接口(interface)。
预编译:
C#中存在预编译指令支持
条件编译,警告,
错误报告和编译行控制.可用的预编译指令有:
#define
#undef
#if
#elif
#else
#endif
#warning
#error
#line []
没有了#include 伪指令.你无法再用#define 语句对符号
赋值,所以就不存在源代码替换的概念--这些符号只能用在#if和#elif伪指令里.在#line伪指令里的数字(和可选的名字)能够修改行号还有#warning和#error输出结果的文件名。
命名空间
命名空间提供了一种方法来唯一标识一个类型以及进行类型的逻辑组织。命名空间可以嵌套使用并可以跨程序集使用。一个类型的完全限定名包括所有命名空间。在一个命名空间中,所有的类型必须有一个唯一的名称。基本类型库(Base Class Library)是.NET Framework的所有语言可下可用的命名空间集。命名空间是组织和重用代码的编译单元。命名空间和文件的结构关系不像Java,命名空间与文件的结构之间没有关系。using语句是用来在使用类型时不需要用全限定名的类型,全限定名也可以被使用。命名空间中的声明,C#与C++有所不同,是C#独有的特点。
操作符重载:
一些操作符能够被重载,而另一些则不能.特别的是,没有一个赋值
运算符能够被重载.能够被重载的单目操作符是:
+ - ! ~ ++ -- true false
能够被重载的二元运算符是:
+ - * / % & | ^ << >> == != > < >= <=