还有,有没有人用C#编3D游戏,有C++好用吗?

解决方案 »

  1.   

    C#对很多原来C++中很好的性质予以了保留,如基于栈分配的轻量级的结构类型,枚举类型,引用(ref),输出(out),数组(params)修饰的参数传递方式等,这些在Java中都被很可惜地丢掉了。在基本类型和单根继承的对象之间的类型统一方面C#提出的box/unbox要比Java的包装类显得高明,效率也要好。
       Java虚拟机(JVM)的解释执行方式曾经让很多开发者"慢的不可忍受"。C#的JIT编译方式为C#在这块战场上赢得赞声一片,某些C#托管代码甚至比传统C++代码都快。虽然现在各厂商实现的Java平台也都一致地采取了JIT编译方式,但C#在这方面的比较优势非常明显--C#的目标编译语言IL从设计初始就把效率摆在了重要的地位,而Java的字节代码的设计却有些鲁莽。托管执行环境经过几年的实践,在现代软件界已经达成了共识,效率的牺牲换来的是高度安全的代码--当然前提是牺牲的效率必须足够的小,至少可以忍受。值得指出的是在这里C#同样"念念不忘老一辈C++程序员",C#允许我们在unsafe上下文中进行指针操作。数组的索引越界检查,类型安全在C#和Java中都被提到了相当的高度。在异常处理方面,不管从内置支持,还是从执行效率来讲,C#都较Java略胜一筹。 
      

  2.   

    在跨平台方面,Java的支持和实现都是为人称道的,虽然JVM的速度仍然让人备感头疼。而C#虽然在底层构造方面对移植性进行了充分的考虑,但至少目前还没有成熟的,经过检验的产品。C#在跨平台方面似乎更热衷于XML Web Services互操作,而不是跨平台编程。但C#通过其基础语言构造(CLI)对二十多种主流语言的对象级的互操作支持,又极大地提升了C#的技术地位。和COM组件廉价地互操作也为C#挣到不少分数--保持一个兼容的体系对现代软件工业非常重要,也是对广大开发人员负责任的表现。
        面向组件无疑是当代软件开发的主流。C#对组件编程甚至到了"迷恋"的地步,这与6年前就出道的Java不可同日而语--当然这是时代问题。C#通过属性,索引器,委派,事件,操作符重载,特征,版本等实现了其对组件编程的第一手的支持。虽然这些在Java中都可以通过方法,接口或者适配器来间接地实现,但软件业的历史告诉我们这无论对编程效率或者逻辑设计都是一种极大的损伤--高级语言首先面对的是人,而不是机器。除去这些语言层面的组件支持机制,.NET平台也为组件的配置,运行,管理等提供了一揽子解决方案,而为组件开发量身定做的Visual Studio.NET更是令人兴奋,这都为C#的组件编程开辟了广阔的天地。在其他技术方面Java的微弱劣势尚且可以忽略不计,但在组件编程方面Java相较于C#却有着不可治愈的硬伤。尤其对于从C++和Visual Basic背景过来的开发人员,C#在这方面有着不可抵挡的魅力和诱惑。
      

  3.   

    .NET平台直接在IL中间语言中的内置XML支持使得C#与生俱来地成为下一代Web服务的首选,这是通过API集来支持Web服务的Java所不能比的。在C#中,XML,SOAP,UDDI,WSDL等底层协议被构建成了面向开发人员的组件,而Java中这些仍然是JAX(Java XML API)等底层协议的操作函数。当然这种局面可能仅仅是时间问题,一个强大的高效的Web Services组件模型对Java来说并不是不可逾越的鸿沟。从纯技术角度来讲,C#无疑较Java更具竞争力。争吵谁抄袭谁也没有意义--技术的发展本来就是一个相互借鉴的过程。
      

  4.   

    比较这两者的优劣是老话题了,就我个人看来,做winform的时候用c#绝对是最好的选择,很多东西微软已经为程序员们想得很周到了,代码写得很轻松。用java做c/s的话,IDE少了点,而且用户界面比起.net差远了    做web的时候如果是用asp.net,视图和业务逻辑分得很清楚,每个aspx页面都有一个对应的.cs后台类,jsp虽然从struct架构开始也在试图分离html和程序源代码,但是还不是很理想,jsp页面中有时还是会有很多的java代码。比较起来c#比java优势大得多,但是有一点关键使得java的优势倍增:java是完全平台无关的,所有的java源文件都编译成class代码,只要有java虚礼机,任何系统都可以执行该class,这一点在web上尤其明显,如果你用asp.net,你不得不选择微软的iis,但是你的后台有可能是linux!c#现在还不能算跨平台的语言,微软的东西就是这样:它很好用,单一但你选择它,你得一辈子跟微软的环境打交道,离了它就不行,所以有人说.net是一座自由的囚笼。
      

  5.   

    .net 强于 java,不管从开发速度、开发成本还是易用性上,MS的.net framework 战略马上要成功了,届时将见到linux/unix 上跑.netibm 调头了,不难倒的delphi也倒了,aol 也死QQ了,只有电器组合战略的apple 和 sun 还很顽强,但是ms 实在太强大了这年头有钱真是要啥有啥,美女也清高不了多久了bill 那点技俩马扁不了我恨啊。。私人感慨之见呀,正式场合可不敢说