在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1、C#不支持多重继承。 使用多重继承可以使派生出来的类具有多重特性,使用紧凑的代码完成十分复杂的功能,但这样不可避免的是代码的调试和阅读变得困难和烦杂。但是C#中支持接口Interface的多重继承,在类中实现Interface中的接口函数就可以了。 2、在标准的C#中,不支持指针类型。 C#在默认情况下都是安全代码,即进行了代码托管,由编译器负责垃圾回收,释放内存,而指针不能出现在安全代码的条件下。如果要使用指针,可以将代码定义为非安全的(unsafe)、或者可以考虑Inptr这个类型。 3、C#中所有的对象都只能通过new来创建分配内存。 在C#中,使用new来调用构造函数,new的作用对象可以是引用类型,也可以是值类型。例如,在C#中可用如下代码声明一个整型变量并分配存储空间:
而在C++中,下面的写法将提示:int*类型的值不能初始化int类型的实体: int a = new int();
6、C++中,Switch后的参数表达式必须是整数或者枚举类型,也可以是char型的字符常量。而在C#中,switch后的参数表达式可以是string类型,这样就扩大了Switch可使用的范围。 在C++中,下边的写法将提示:表达式必须包含整数或者枚举类型,
<span style="white-space:pre"> </span>string a = "w"; 8、C# 中新增委托、事件,装箱与取消装箱。 委托,事件是C#中新引入的概念,与MFC中的消息响应机制类似。 9、C#中不再存在全局变量。 如果,在命名空间的作用域中,类的作用域之前定义一个整型变量,将提示:命名空间不能直接包含字段或方法之类的成员。如下图所示:
10、C#提供自动垃圾回收机制。 托管代码:被CLR(Common Language Runtime)管理的代码。 回收机制:分配在栈空间的变量,一旦执行完,或者超出其作用域,就会被CLR回收;分配在堆里的对象,当没有其他任何对象引用他时,就被标记为垃圾对象,等待垃圾回收器回收。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论