c++,c.c#区别

本文详细对比了C#、C++、Java这三种编程语言的特点,包括数据类型、常量、入口点、控制结构、数组、包、面向对象特性、可访问性、派生类、接口、库、垃圾收集和异常处理等方面。C#与Java更接近,具有面向对象、自动垃圾回收等特点,同时具备一些Java尚未有的特性,如枚举、结构、属性、以引用方式传递简单数据类型的参数和代理。在选择使用时,可根据项目需求、性能和平台兼容性等因素考虑。
摘要由CSDN通过智能技术生成

C++则一般看作是对C语言的扩展。
Java语言是一种完全的面向对象语言,虽然它的底层(运行时库)是用C语言开发的,可是并不依赖于C。
C#是微软开发的一种编程语言,语法类似Java,几乎就是从Java的翻版。
C/C++的优点在于与底层比较接近,可以控制的粒度更加精细,是开发系统级应用的最佳选择。关于缺点,我想正是源于其优点,因为它们能控制的编程元素粒度精细,所以编程比较困难,烦琐,容易出错。
Java和C#都比较高级,可以看作高级语言的高级语言,优点是开发容易,但运行效率不如更为底层的C/C++。
具体选择使用的时候,可以根据实际的项目需要选择。运行效率要求高的,底层控制要求高的用C/C++,否则可以选择Java或C#;跨平台的要求高的可以用Java。
C/C++稳定,灵活,高效 ——————各种大型应用程序、系统的编写,底层的开发——包括操作系统,内核功能的编写等;
JAVA:高效,体积小,可移植性——————硬件驱动的编写,嵌入式程序,手机应用程序,网络小程序等各种需要在可使用资源较少的功能不太复杂的程序;
.NET:开发周期短,代码复用率高,安全性好——————————WebSite及web服务编程;
C#:开发周期短,对网络和数据访问功能——————————各种和网络有关的Applications;

C#、C++和Java
C#的语言规范由Microsoft的Anders Hejlsberg与Scott Wiltamuth编写。在当前Microsoft天花乱坠的宣传中,对C#和C++、Java作一番比较总是很有趣的。考虑到当前IT媒体的舆论倾向,如果你早就知道C#更接近Java而不是C++,事情也不值得大惊小怪。对于刚刚加入这场讨论的读者,下面的表1让你自己作出判断。显然,结论应该是:Java和C#虽然不是孪生子,但C#最主要的特色却更接近Java而不是C++。
在这里插入图片描述
了解表1总结的重要语言功能之后,请继续往下阅读,了解C#和Java的一些重要区别。
语言规范的比较
2.1、简单数据类型

简单数据类型(Primitive)在C#中称为值类型,C#预定义的简单数据类型比Java多。例如,C#有unit,即无符号整数。表2列出了所有C#的预定义数据类型:
在这里插入图片描述

2.2、常量
忘掉Java中的static final修饰符。在C#中,常量可以用const关键词声明。
[csharp]

  1. public const int x = 55;
    此外,C#的设计者还增加了readonly关键词。如果编译器编译时未能确定常量值,你可以使用readonly关键词。readonly域只能通过初始化器或类的构造函数设置。

2.3、公用类的入口点
在Java中,公用类的入口点是一个名为main的公用静态方法。main方法的参数是String对象数组,它没有返回值。在C#中,main方法变成了公用静态方法Main(大写的M),Main方法的参数也是一个String对象数组,而且也没有返回值,如下面的原型声明所示:
[csharp]

  1. public static void Main(String[] args)
    但是,C#的Main方法不局限于此。如果不向Main方法传递任何参数,你可以使用上述Main方法的一个重载版本,即不带参数列表的版本。也就是说,下面的Main方法也是一个合法的入口点:
    [csharp]

  2. public static void Main()
    另外,如果你认为有必要的话,Main方法还可以返回一个int。例如,下面代码中的Main方法返回1:
    [csharp]

  3. using System;

  4. public class Hello {

  5. public static int Main() {

  6. Console.WriteLine(“Done”);

  7. return 1;

  8. }

  9. }
    与此相对,在Java中重载main方法是不合法的。

2.4、switch语句
在Java中,switch语句只能处理整数。但C#中的switch语句不同,它还能够处理字符变量。请考虑下面用switch语句处理字符串变量的C#代码:
[csharp]

  1. using System;
  2. public class Hello {
  3. public static void Main(String[] args) {
  4. switch (args[0]) {
  5. case “老板”:
  6. Console.WriteLine(“早上好!我们随时准备为您效劳!”);
  7. break;
  8. case “雇员”:
  9. Console.WriteLine(“早上好!你可以开始工作了!”);
  10. break;
  11. default:
  12. Console.WriteLine(“早上好!祝你好运!”);
  13. break;
  14. }
  15. }
  16. }
    与Java中的switch不同,C#的switch语句要求每一个case块或者在块的末尾提供一个break语句,或者用goto转到switch内的其他case标签。

2.5、foreach语句
foreach语句枚举集合中的各个元素&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端小歌谣

放弃很容易 但是坚持一定很酷

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值