• vc6,vc.net,vc7,vc8,vc9,c,c++,c#的区别与联系


    1.vc.net开发的程序,.net程序需要框架支持,没有安装框架的计算机不能运行;
    2.vc6.0开发的程序比.net的快;
    3.VC6/VC2003/VC2005/VC2008都支持MFC;
    4.基于.net的程序功能强大、界面美观,而且还可以跨平台(在WINCE等操作系统上运行)。
    5.vc.net代表使用了.net的VC,而VC7或VC8也可以不使用.net;VC7或VC8开发的程序,假如使用了.net(例如CLR程序),则需要框架的支持,否则(例如MFC程序)可以独立运行。
    6.vc.net集成了很多常用的程序,使编程工作简化,据说平均可以减少70%的工作量;vc.net把多种编程语言联系在一起,为混合编程提供了方便;
    7.VC.net的C 部分,就是比VC 6支持的标准一些。MFC部分,当然比VC6的要新,支持一些新特性;
    8.vc.net以后的vc有两种代码,一种托管C 代码,就是会编译为.net的中间代码,需要.net框架支持的。还有就是传统的非托管代码,也就是直接编译为执行程序,和6.0编译出来程序的一样,不过有很多更新。
    9.vc.net就是移植性好一点(也仅限各种windows);
    10.vc.net安装需内存多,vc.NET在MFC上跟VC6.0 差别不是很大 它增加了一些库,它没有了 ClassWizard 。
    vc6与vc8(vc2005)的区别与联系
    1.VC++2005包含了VC++6.0,只有函数库有一点更改,还有一些文件结构改了.但是VC++2005不仅包含了传统的VC++, 还包含VC++.NET,可以写托管的C++应用,也就是.NET应用程序。


    c、c++、c#的区别

    要说区别,首先就得说联系,我不记得在哪儿看过这么一句话:C是爷爷,C++是爸爸, C#是c的外孙。这形象说明了三者的关系。
    从时间先后上说,他们之间最早出现的是C,然后是c++,最后是c#。c++是为了解决软件危机而引入面向对象,c#为了实现平台统一和java争夺市场下的产物。
    从性能上说, c的效率最高,c++次之,c#最低。C是面向过程的结构化编程语言,他的特点是语言体积小,效率高, 语言灵活,给程序的限制小,而且可以方便的对低层进行操作,所以它非常适合于开发操作系统,驱动程序,嵌入式等对速度要求较高的程序。 C++使向下完全兼容C的, C++与C相比最显著的变化就是增加了面向对象的成分,也就是增加了类的概念,因为它的增加使软件开发可以比较容易的描述人类的思维,使得软件的开发和维护变得相对简单,直接降低了软件的成本, 但因为C++是面向对象的语言,这本身就制约他的速度,所以C++适合开发那些大型项目,现代的大部分语言都或多或少的借鉴了C++和C的某些特性. C#被包括在.net平台下,是一个面向对象面向网络面向组件的语言, 有很多地方与java非常相似,擅长于开发网络方面的程序. 因此,更确切的说,c#是一个需.net平台支持的开发语言,单纯看c#没有意义,需要了解.net平台的开发知识。
    从编译角度看,C/C++编译生成目标文件都是可被CPU直接理解的机器码, 而C#编译后生成的是MSIL(Microsoft Intermediate Language)这种语言不能直接被CPU执行,而是依靠.net framework翻译(Just-in-time compiling)成opcode后再送到CPU执行的。因此,这也是上面为什么说c#运行效率最低的缘故。

     

    C++和C#的语法和功能区别

    下表包含 C++ 和 C# 功能之间的重要比较。如果您是一位 C++ 程序员,此表将为您提供这两种语言的最重要差异。
    注意   C++ 和 C# 项目派生于不同的项目模型。有关 C++ 和 C# 项目之间差异的信息,请参见项目中的项管理和使用解决方案资源管理器。
    功能 参考主题
    继承:类只能继承一个基类中的实现。另外,类或接口可以实现多个接口。
    数组:声明 C# 数组和声明 C++ 数组的语法不同。在 C# 中,“[]”标记出现在数组类型的后面。
    bool 类型:bool 类型和其他类型(特别是 int)之间没有转换。
    long 类型:在 C# 中,long 数据类型为 64 位,而在 C++ 中为 32 位。
    struct 类型:在 C# 中,类和结构在语义上不同。struct 是值类型,而 class 是引用类型。
    switch 语句:与 C++ 中的 switch 语句不同,C# 不支持从一个 case 标签贯穿到另一个 case 标签。
    delegate 类型:委托与 C++ 中的函数指针基本相似,但前者具有类型安全,是安全的。
    从派生类调用重写基类成员。
    使用 new 修饰符显式隐藏继承成员。
    声明重写方法需要有 override 关键字。
    预处理器指令用于条件编译。C# 中不使用头文件。
    异常处理:使用 finally 语句。
    C# 运算符:C# 支持其他运算符,如 is 和 typeof。它还引入了某些逻辑运算符的不同功能。
    关键字 extern 的使用。
    关键字 static 的使用。
    在构造基类上替代 C++ 初始化列表的方法。
    C# 程序的常规结构:命名空间、类、结构、委托和枚举。
    Main 方法和 C++ 中的 main 函数的声明方式不同。
    方法参数:C# 支持 ref 和 out 参数,这两个参数取代指针通过引用传递参数。
    在 C# 中只在不安全模式下才使用指针。 unsafe
    在 C# 中以不同的方式执行重载运算符。
    字符串:C# 字符串不同于 C++ 字符串。 string
    foreach 关键字使您得以循环访问数组和集合。 foreach, in
    C# 中没有全局方法和全局变量:方法和变量必须包含在类型声明(如 class 或 struct)中。
    C# 中没有头文件和 #include 指令:using 指令用于引用其他未完全限定类型名的命名空间中的类型。
    C# 中的局部变量在初始化前不能使用。
    析构函数:在 C# 中,不能控制析构函数的调用时间,原因是析构函数由垃圾回收器自动调用。
    构造函数:与 C++ 类似,如果在 C# 中没有提供类构造函数,则为您自动生成默认构造函数。该默认构造函数将所有字段初始化为它们的默认值。
    C# 不支持位域。 C++ 位域
    C# 的输入/输出服务和格式设置依赖于 .NET Framework 的运行时库。
    在 C# 中,方法参数不能有默认值。如果要获得同样的效果,请使用方法重载。

  • 相关阅读:
    Java程序:从命令行接收多个数字,求和并输出结果
    大道至简读后感
    大道至简第一章读后感Java伪代码
    Creating a SharePoint BCS .NET Connectivity Assembly to Crawl RSS Data in Visual Studio 2010
    声明式验证超时问题
    Error message when you try to modify or to delete an alternate access mapping in Windows SharePoint Services 3.0: "An update conflict has occurred, and you must re-try this action"
    Upgrading or Redeploying SharePoint 2010 Workflows
    Upgrade custom workflow in SharePoint
    SharePoint 2013中Office Web Apps的一次排错
    How to upgrade workflow assembly in MOSS 2007
  • 原文地址:https://www.cnblogs.com/kex1n/p/1647817.html
Copyright © 2020-2023  润新知