C,C++程序员使用C#应注意的一些小问题[4]

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

 

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

 

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

 

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

 

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

 

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

 

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

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

 

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

 

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

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

 

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

 

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值