C#能功能上能完全实现C++的功能吗?
以前学过编程,现在想重新学。C++好像 太麻烦了。听说C#做C/s开发也很好,。。请问C#能完成C++的所以实现吗?

解决方案 »

  1.   

    不能C# 能实现的 C++ 都能实现,C++ 能实现的 C# 并不都能实现(比如偏底层、偏硬件的)
    C# 运行于 .net framework 中,运行效率偏低
      

  2.   

        完全可以    你想做什么都行,比如你想指针直接操作非托管内存? 可以    标记unsafe 就行    你也就做个C/S开发,估计用不到什么高阶的技术点。
      

  3.   

    功能上完全可以,语法上当然不可以了,我的意思是C++能完成的的项目C#也可以,相反C#轻而易举的项目,C++会很痛苦C#在语法上更丰富,更好用些C#是托管代码,生成字节码,不生成机器码,必须要运行时支持(java叫虚拟机)。。
    还用通常我们说的C++和C#指的是  VC++和C#.net 而不是 C++.net和C#.net,因为C++.net和C#.net区别仅仅是语法,因为字节码可以用好多种语法生成但是对于 .net来说C#是亲儿子,C++并不是,甚至没有VB亲,VB是拖油瓶的大儿子,C#是亲儿子,C++完全是野外捡来的
      

  4.   

    C#主要用途是在PC端,做开发,做B/S也行,但前提基本都会是限制在windows系统里。。想在其他系统或环境下混,就看.net core将来的表现了做电脑APP开发,C#正合适做安卓,MAC之类的,只能指望.net core将来的发展了,有这功夫还不如直接学别语言呢,所以用啥完全看你干啥,而不是哪个语言的好坏
      

  5.   

    没有任何一个语言是万能的,万能都只是理论上的万能,而不是应用上的,但做事是看应用,而不是理论,理论上牛顿力学还是错的呢,那又有什么关系呢???很多人爱说C语言啥都能做,来做个大型3D游戏让我玩玩,你看他做不做,他肯定要说能不能换个语言,为啥要限定用C呢???
      

  6.   

    不考虑成本、效率,仅仅从理论上说,完全可以,因为c++和c#都是图灵等价的。
    只要是通用的编程语言,都具有相同的能力。哪怕是basic,也能完成c++能做的一切事情。
      

  7.   

    这种问题怎么回答呢?很难。越是一张白纸,你问“白纸上能不能写出来优秀程序?”这越难回答。通常只有在同一个范畴里的工程师,相互才能沟通。所以我们回答之前要先了解你是基于哪一个层次、哪一种工作习惯来提问的,要了解你是喜欢自己入门初学呢、还是喜欢在 csdn 抄代码呢、还是作为一个有点经验的开发人员来问。对于有点经验的开发人员,那么自然是每一种工具都有其特色,工程师都会预算出每一个项目的时间和费用成本,自然也包括了编程语言。对于初学,其实c++传统的教程是基础,要比 c# 入门教程强不知多少,而且你也可以调用 .net CLI。然而如果我们说c++编程仍然依赖 .net 的时候,这里的的关键根本不在于编程语言,而是在于你对于计算机软件体系以及 .net framework 大部分框架的理解,编程语言只是纠结于皮毛。
      

  8.   

    你说到了“学过编程”,其实学习软件设计开发,我们都知道,像基础课程中的有关计算数学、离散数学、线性代数等等,以及专业课程中的数据结构和算法、编译原理、数据库原理(不是指低级的增删改查语言,是指设计开发一个数据库系统的原理)、操作系统、计算机体系结构以及外设、windows操作系统原理或者linux操作系统原理、软件工程,等等,都是基础。最终都要汇集到软件工程上面。而4、5种编程语言是刚开始接触专业时必学的皮毛。一个团队里边这些东西的薄弱决定了它的专业性虚伪。
      

  9.   

    原理上来讲并不能,C#是基于.NET Framework的虚拟机语言,本身并没有直接与内存、硬件交互的能力,而C++可以。说白了,C#还是一门应用型语言。
      

  10.   

    应该说什么语言合适做什么。C#做普通的C/S开发没问题,不过如果要调用Win32 API,会很麻烦痛苦,而C++就很方便(Win32 API就是C接口的)另外,C#的程序有个反编译的问题,而且部署的时候要安装对应版本的.net框架。
      

  11.   

    学习C#吧, C#超级好用。以前觉得C++太底层了,不过最近公司有个项目用了一个叫 Qt 的库,也很简单。
      

  12.   

    至少c++能直接访问内存的操作,c#是实现不了,做UI或者其他,c#应该都能实现.
      

  13.   

    写个boot loader...
      

  14.   

    你会C++,已经了解内存模型了。
    C++也是面向对象。
    但C#没有指针后更简单,如果你是从C++转过来的,有种傻瓜式语言的感觉,啥都不用操心
      

  15.   

    可以的。想难点就使用C++,用MFC。简单点就用C#,Winform。
      

  16.   

    我给你举一个比尔盖茨时代的例子,比尔盖茨以及其它早期优秀的程序员,他们不喜欢c,那么他们在 vb 中遇到底层个别语句编程时就会去使用汇编语言。什么意思呢?他们能用汇编语言在只有几百K字节的机器上写出并运行类似 QBasic 这样的应用软件编辑和解释运行操作系统,拥有各种基本计算机能力,那么擅长c语言的程序员又有几个有同样的能力在同样只有几百K字节的机器上发布自己的操作系统和编程平台呢?因此这其实根据不同程度的人,有不同的答案。真正一个 c# 程序员可能也就不纠结于什么 c# 语言。反倒是特别纠结于 c# 语言的程序员才是非要什么功能开发都纠结 c# 语言。
      

  17.   

    说白点,不纠结于 c# 语言的程序员可能必要时会采取直接的办法秒杀纠结于 c++ 的软件的整体性能,而没必要时又不去关心 c++。你看帖子答案,不如多研究每一个人是只会点 c# 语言还是会解决问题。
      

  18.   

    你去研究比尔盖茨或者同时代的其它优秀程序员的传记就会明白,一个优秀的 vb 程序员在 vb 功能不足时就会习惯于使用汇编语言写上几行代码,放到 vb 程序中。Delphi 等语言程序员也是如此。那么 c++ 语言程序员自然是更多时候用 c++ 甚至 c 语言来写同样代码。但是他们那个时代不会厚此薄彼,因为没有什么人争论”一种语言“包打天下这类问题。