技术开发 频道

C#中C/C++程序员不可不知的问题

  31.C#中使用internal修饰符修饰的类成员对于同一包中的应用程序或库是透明的,而在包.net之外是禁止访问的。

  32.C#中this关键字在类中是引用类型,是类对象自身的引用,而在C++中是指针,指向当前类对象。

  32.C#中使用名字空间时using后没有namespace关键字,而在C++中需要使用using namespace

  33.C#中类静态(static)成员不需要在类外进行定义,而在­C++中静态在类中进行声明,在类外进行定义,但是不管在这两种语言中任何一种中,静态成员都为所有类对象共同拥有,无论存在多少该类的对象,静态成员在内存中只有一个。

  34.C++中允许显示调用析构函数,而在C#中不允许对析构函数进行显示调用。

  35.C#中没有全局变量,全局函数,全局常量的概念,在C#中所有的变量,方法必须封装在类中。

  36.C#中用ref声明引用参数,使用引用参数时不另开辟内存区域,但是需要初始化。

  用out声明输出参数,out修饰符后的参数不需要初始化,作为函数返回值来使用。

  37.形参中包含了数组型参数,那么它必须在参数表中位于最后。另外,参数只允许是一维数组。比如,string[]和string[][]类型都可以作为数组参数,而string[ , ]则不能,而且数组型参数不能用ref, out修饰。

  38.C#中readonly修饰符表示此作用域为只读域,readonly标识后只能在类的构造函数和域的定义中进行修改,其他情况下只读。

  在C++中使用#define,const定义常量可以在C#中用static+readonly来替代。(注意:const与static+readonly区别在于,const的值在编译时生成,而static+readonly知道程序运行时才形成。)

  39.C#中声明后的变量都将有默认初始值,包括自定义的结构。(任何引用的默认初始值为null)域的初始化分为两种形式:对于静态域,类在装载时对其进行初始化;对于非静态域,在类的实例创建时进行初始化。在默认的初始化之前,域的值是不确定的。

  40.使用abstract修饰的抽象属性,set,get中只有一个分号“;”。

  get访问器用return获取值,set用value设置值。

  

0
相关文章