C#与C++的区别总结

栏目: C++ · 发布时间: 7年前

内容简介:C#与C++的区别总结

没有高级语法部分,只有基础语法和OOP。C#确实是优秀的语言,海神也让人敬仰。

基础语法

  • 两种布尔逻辑运算符。侃:有意思

  • 字符串格式化打印。侃:好,这才是给人用的API

  • 数组:声明 C# 数组和声明 C++ 数组的语法不同。在 C# 中,“[]”标记出现在数组类型的后面。侃:C#的数组不错,更直观,里面也有更多的语法糖。

  • bool 类型:bool 类型和其他类型(特别是 int)之间没有转换。侃:好

  • struct 类型:在 C# 中,类和结构在语义上不同。struct 是值类型,而 class 是引用类型。侃:很好,值类型和引用类型都很有用,要不然C++也不会折腾什么POD。

  • switch 语句:与 C++ 中的 switch 语句不同,C# 不支持从一个 case 标签贯穿到另一个 case 标签。侃:很好,switch贯穿写法绝大部分都是漏写了break

  • delegate 类型:委托与 C++ 中的函数指针基本相似,但前者具有类型安全,是安全的。侃:极好,C#最大卖点之一,委托非常优雅的定义了回调,相比而言C++里各种函数指针类型定义简直要吐

  • 预处理器指令用于条件编译。C# 中不使用头文件。侃:很好,另外鄙视C++拿头文件当文档的

  • 异常处理:使用 finally 语句。侃:好

  • 非转义字符串。侃:极好,这才是给人读的字符串

  • C# 运算符:C# 支持其他运算符,如 is 和 typeof。它还引入了某些逻辑运算符的不同功能。侃:好

  • Main 方法和 C++ 中的 main 函数的声明方式不同。另外,比较每种语言的命令行参数的使用。侃:好,终于不用为老谭吵架了

  • 方法参数:C# 支持 ref 和 out 参数,这两个参数取代指针通过引用传递参数。侃:极好,显式调用,这比C++高的不知道哪里去了

  • 在 C# 中只在不安全模式下才使用指针。侃:好,当年 Java 因为没指针推销被一通喷,只好假装有指针。这有利于推销。

  • C# 中的局部变量在初始化前不能使用。侃:好

  • ///文档注释。侃:好

  • 函数支持参数数组。侃:好,比写printf舒服多了

OOP

  • C# 中没有全局方法和全局变量:方法和变量必须包含在类型声明(如 class 或 struct)中。侃:习惯就好,全局方法有时候是很丑陋的,比如一个getxxx,你到底是从哪get的。

  • 继承:类只能继承一个基类中的实现。另外,类或接口可以实现多个接口。侃:单根继承很好。

  • 类成员有字段和属性之分。侃:好,懒人和勤快人都能用

  • 属性访问语法和自动属性。侃:好,比手写getter,setter好多了

  • 使用 new 修饰符显式隐藏继承成员。侃:很好

  • 部分类定义。侃:好,谁再规定Java一个类不能超过多少行,可以怼了。

  • 只读字段。侃:好

  • 静态构造函数。侃:好,终于不用分开写了。

参考:

https://msdn.microsoft.com/zh-cn/library/aa287549(v=vs.71).aspx


以上所述就是小编给大家介绍的《C#与C++的区别总结》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

2小时品牌素养

2小时品牌素养

邓德隆 / 2009-1 / 38.00元

《2小时品牌素养(第2版)》第一次系统发布有关中国企业的品牌竞争力分析报告,揭示了中国一流企业在品牌战略上面临的深重危机,提出了定位突围之道和实践方法。全书分上下两篇,上篇详细分析了定位的原理,给出定位的三种方法,并特别为中国企业走向世界指出了三条出路;下篇以王老吉品牌战略历程为例,细致论述了一个品牌打造的完整过程,并就品牌实践中的许多关键问题进行了阐述和研讨。作为兼顾理论和实践的第2版,《2小时......一起来看看 《2小时品牌素养》 这本书的介绍吧!

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具