技术开发 频道

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

  【IT168 资讯】

  1、C/C++程序员请注意,不能在case语句不为空时“向下执行”。

  2、值类型和引用类型之间的区别:C#的基本类型(int,char等)都是值类型,是在栈中创建的。而对象是引用类型,创建于堆中,需要使用关键字new。

  3、在C#中通过实例访问静态方法或成员变量是不合法的,会生成编译器错误。但是我们可以通过声明他们的类的名字来发访问静态成员。

  4、C#派生类中,没有私有或者保护继承。关于这一点C++程序员注意了。

  5、C#多态性,C++程序员注意,必须显式用关键自override标记重新定义了虚方法的方法声明。

  6、抽象类与密封类,抽象类用来被派生,并为其子类提供遵循模版;而密封类则完全不允许被派生。抽象类关键字是abstract;密封类关键字为sealed

  7、C#中结构体的定义与C++的非常不同。在C++中,结构体与类除了默认的可见性(一个是public,一个是privae)之外完全一样。而在C#中,结构体是值类型,而类是引用类型。

  8、C#中委托相当于C++中的方法指针,关键字为delegate。

  9、.NET用来创建网页程序的技术是ASP.NET2.0,它在命名空间System.Web和System.Web.UI中为创建网页程序提供了一套丰富的类型。

  10、C#线程三种同步机制:互锁类(Interlocked),C# lock语句,以及监控器对象(Monitor class)

  11、C#中要使用值变量之前,需要事先声明,并且要在使用之前先设置初始值,永远不可为null;引用类型变量,存储在heap中,不允许在初始化之前使用这个变量。

  12、C#中switch-case语句与C/C++不同地方在于C#中不允许case判断式“silent fall through”。也就是说,当找到符合case标记后的常数后,只会执行此case区块中的程序代码,不会再执行其他的case判断式进行判断的动作。

  13、参数传入机制

  14、C#中使用数组要注意两件事情:数组名称不可置于中括号前方;声明数组变量时,不能够指定数组的大小。

  15、类

  C#的成员访问修饰符包含以下几种:

  Public

  任何外部的类都可以不受限制的存取这个类的方法和数据成员。

  Private

  类中的所有方法与数据成员只能在此类中使用,外部无法存取。

  Protected

  除了让本身的类可以使用之外,任何继承自此类的子类都可以存取。

  Internal

  在同一个.NET Assembly(Application或Library,也就是说,同一个EXE或同一个DLL中的成员)中都可以存取。

  Protected internal

  只限定目前的项目,或是继承自此类的成员才可以存取。

  结构与类的差异:

  16、值类型与引用类型之间的互换称为Boxing与Unboxing

0
相关文章