C#与C++区别(转)

语法结构上,C++和C#基本上相同,只有以下方面有所区别:

  1. 继承:C++支持多继承,C#类只能继承一个基类中的实现但可以实现多个接口。
  2. 数组:声明 C# 数组和声明 C++ 数组的语法不同。在 C# 中,“[]”标记出现在数组类型的后面。
  3. 数据类型:在C++中bool类可以与整型转换,但C#中bool 类型和其他类型(特别是 int)之间没有转换。long 类型:在 C# 中,long 数据类型为 64 位,而在 C++ 中为 32 位。
  4. struct 类型:在 C# 中,类和结构在语义上不同。struct 是值类型,而 class 是引用类型。
  5. switch 语句:与 C++ 中的 switch 语句不同,C# 不支持从一个 case 标签贯穿到另一个 case 标签。C++的switch后跟参数必须是int型,而C#却允许string型
  6. delegate 类型:委托与 C++ 中的函数指针基本相似,但前者具有类型安全,是安全的。
  7. C#中所有对象都只能通过关键词“new”来创建,C++的“类名_对象名”方式在C#中变为声明一个引用。
  8. 异常处理:C#中引入了 finally 语句,这是C++没有的,C++允许抛出任何类型,而C#中规定抛出类型为一个派生于System.Exception的对象
  9. C# 运算符:C# 支持其他运算符,如 is 和 typeof。它还引入了某些逻辑运算符的不同功能。
  10. static 的使用:static方法只能由类名调用,改变static变量。
  11. C#在构造基类上替代 C++ 初始化列表的方法。
  12. Main 方法和 C++ 及Java中的 main 函数的声明方式不同,Main而不能用main
  13. 方法参数:C# 支持 ref 和 out 参数,这两个参数取代指针通过引用传递参数。
  14. 在 C# 中只能在unsafe不安全模式下才使用指针。
  15. 在 C# 中以不同的方式执行重载运算符。
  16. 字符串:C# 字符串不同于 C++ 字符串。
  17. C# 中没有全局方法和全局变量:方法和变量必须包含在类型声明(如 class 或 struct)中。
  18. C# 中没有头文件和 #include 指令:using 指令用于引用其他未完全限定类型名的命名空间中的类型。
  19. C# 中的局部变量在初始化前不能使用。
  20. 析构函数:在 C# 中,不能控制析构函数的调用时间,原因是析构函数由垃圾回收器自动调用。
  21. 构造函数:与 C++ 类似,如果在 C# 中没有提供类构造函数,则为您自动生成默认构造函数。该默认构造函数将所有字段初始化为它们的默认值。
  22. 在 C# 中,方法参数不能有默认值。如果要获得同样的效果,需使用方法重载。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值