C#相对于VB的优势

标签 c# .net vb.net

<分区>

C#.NET 中的哪些方面使其比 VB.NET 更适合某些项目?

性能?、能力?、库/组件?、声誉?、可靠性?可维护性?、易用性?


基本上 C# 可以做的任何事情,使用 VB 是不可能的, 反之亦然。 在为项目选择 C#/VB 时必须考虑的事情。

最佳答案

C# 和 VB 基本相同,但存在一些细微差别。除了明显的语法差异外,您还有以下差异:

  1. C# 可以调用不安全的代码
  2. VB 有可选参数(在 C#4.0 中)
  3. 在进行后期绑定(bind)调用时,VB 更易于使用(C# 4.0 中推出)这一点和数字使 2 使用 VB 进行办公自动化更加简洁。
  4. VB 有一堆“辅助”函数和类,例如 My 命名空间;然而,所有这些都可以通过 C# 访问
  5. VB 不区分大小写

C# 的语法遵循与 c 和 java 类似的语法,这使得从这些语言过渡起来更加舒适,而 VB 对 VB 用户来说更舒适。就性能、库或组件而言,它们几乎相同。

至于选择哪一种,除非你有做不安全操作的需要,那就选择你最自然的语言。作为一名 VB 开发人员多年后,我喜欢不必编写 If yadada then.....End If if (yadaya){....} 为我的腕管节省了一些额外的击键(然后可以用于回答 SO问题)

编辑

刚刚了解到 C# 和 VB 的另一个区别是 VB 支持过滤异常,因此您可以像这样伪:

try
{
   //do something that fails
}
catch(Exception ex when ArgumentException, 
      ArgumentNullException, FormatException)
{
  //Only handle these three types
}

这不应该与做以下事情的能力相混淆:

try
{ 
    //something that fails
}
catch(ArgumentException)
{ 
    //Log Error
}
catch(ArgumentNullException)
{
    //Log Error
}

在这种情况下,您将在 VB 世界中以不同方式处理异常,您可以定义一段代码来处理多种类型的异常。

编辑

更多差异。

  1. VB 的 Is 运算符比较两个对象以确定它们是否相同,它编译为 CEQ IL 指令,而 C# 编译为 isinst IL。所以下面是等价的陈述

c# 如果(foo 是 FooObject){}

动词 如果 TypeOf foo 是 FooObject 那么

  1. 也如评论中所述,我希望我能看到他们给你信用,但 C# 没有类似的参数。您需要使用 RegEx 类。

关于C#相对于VB的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/380274/

相关文章:

c# - 从字符串中拆分 2 个日期的问题

c# - 当无法序列化枚举时,尽早失败或明确抛出

.net - "!!"在 MSIL 中的明确含义是什么?

.net - 无法在 Visual Studio 2012 中打开 .NET 4.0.1 目标项目

c# - 如何在 C# 匿名类型中声明 "Key"字段?

vb.net - 条纹按钮的制作方法

.net - 通过 mutral css 类选择标准 html 表

c# - 程序集.Load .NET Core

asp.net - 在 Ubuntu 上的 fx_muxer.cpp :316 upon startup of . NET Core App 1.0 获取断言

c# - 获取不同开始日期的周数