科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件C# 和本机 C++(它不使用 /clr)之间的重要比较信息(二)

C# 和本机 C++(它不使用 /clr)之间的重要比较信息(二)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

  在 C++ 中,extern 用于导入类型。在 C# 中,extern 用于为使用同一程序集的不同版本创建别名。

来源:soft6 2008年5月22日

关键字: 信息 比较 C++ Windows

  • 评论
  • 分享微博
  • 分享邮件

  在 C++ 中,extern 用于导入类型。在 C# 中,extern 用于为使用同一程序集的不同版本创建别名。

  static 关键字:在 C++ 中,static 既可用于声明类级实体,也可用于声明特定于某模块的类型。在 C# 中,static 仅用于声明类级实体。

  C# 中的 Main 方法和 C++ 中的 main 函数的声明方式不同。在 C# 中,它是大写的,并且始终是 static 的。此外,在 C# 中,对处理命令行参数的支持要可靠得多。

  在 C# 中,只有在 unsafe 模式下才允许使用指针。

  在 C# 中以不同的方式执行重载运算符。

  字符串:在 C++ 中,字符串只是字符的数组。在 C# 中,字符串是支持可靠搜索方法的对象。

  foreach 关键字使您可以循环访问数组和集合。

  全局:在 C# 中,不支持全局方法和全局变量。方法和变量必须包含在 class 或 struct 之内。

  导入类型:在 C++ 中,多个模块公用的类型放置在头文件中。在 C# 中,可通过元数据获取此信息。

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

  内存管理:C++ 语言不提供垃圾回收功能;在进程终止前,未显式释放的内存仍保持已分配的状态。C# 语言提供垃圾回收功能。

  析构函数:C# 具有用于确定地释放非托管资源的不同语法。

  构造函数:与 C++ 类似,如果在 C# 中不提供类构造函数,则为您自动生成一个默认构造函数。该默认构造函数将所有字段初始化为它们的默认值。

  C# 不支持位域。

  C# 的输入/输出服务和格式设置依赖于 .NET Framework 的运行时库。

  在 C# 中,方法参数不能有默认值。如果要获得同样的效果,请使用方法重载。

  在 C# 中,为类型参数化提供泛型类型和泛型方法的方式与 C++ 模板类似,尽管存在显著的差异。

  as 关键字与标准强制转换类似,不同之处在于:如果转换失败,则返回值为空,而不是引发异常。这与使用 C++ 中的 static_cast(与 dynamic_cast 不同,它不执行运行时检查,因此失败时不引发异常)相似。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章