Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#和#x27;s在VB上的优势_C#_.net_Vb.net - Fatal编程技术网

C#和#x27;s在VB上的优势

C#和#x27;s在VB上的优势,c#,.net,vb.net,C#,.net,Vb.net,C#NET中的哪些内容使它比VB.NET更适合某些项目 性能、能力、库/组件、声誉、可靠性?可维护性?,易用性 基本上,任何C#能做的事情,用VB都是不可能的,反之亦然。 在为项目选择C#/VB时,您必须考虑的事情。在早期版本的VB.NET中,差异更为明显,但在当前版本中,没有显著差异 VB直接在代码中支持XML文本,这是C#不支持的。C#支持不安全代码,VB不支持。从技术上讲,这两者是最大的区别。有许多小的变化,但它们并不重要。我更喜欢C#,因为我觉得语法没有那么臃肿。识别代码块很容易,而不

C#NET中的哪些内容使它比VB.NET更适合某些项目

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


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

在早期版本的VB.NET中,差异更为明显,但在当前版本中,没有显著差异

VB直接在代码中支持XML文本,这是C#不支持的。C#支持不安全代码,VB不支持。从技术上讲,这两者是最大的区别。有许多小的变化,但它们并不重要。我更喜欢C#,因为我觉得语法没有那么臃肿。识别代码块很容易,而不是看到一堆关键字,但这纯粹是个人偏好

选择您和您的团队更熟悉的选项。

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

  • C#可以调用不安全代码
  • VB有可选参数(在C#4.0中提供)
  • VB在进行后期绑定调用(C#4.0版本)时更易于使用。这一数字和数字使使用VB进行办公自动化变得更加干净
  • VB有一堆“助手”函数和类,比如My命名空间;但是,C语言可以访问所有这些#
  • VB不区分大小写
  • C#的语法遵循与C和java相似的语法,这使得它与这些语言的转换更加舒适,而VB对VB用户来说更舒适。就性能和库或组件而言,它们几乎相同

    至于选择哪一种,除非你需要做不安全的操作,那么就选择对你来说最自然的语言。作为一名VB开发人员多年后,我喜欢不用写If yadada then.…End 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世界中的异常,您可以定义一段代码来处理多种类型的异常

    编辑 还有一些不同

  • VB的Is运算符比较两个对象,以确定它们是否与编译到CEQ IL指令的对象相同,其中as C#编译到isinst IL。下面是等价的陈述
  • c#
    if(foo是foooobject){}

    vb
    如果foo的类型是FooObject,那么

  • 同样正如评论中提到的,我希望我能看到他们给你的信任,但C#没有类似的参数。您需要使用RegEx类

  • 据我所知,这两种语言之间虽然差别很小,但也存在差异。我建议使用您/您的开发人员最熟悉的语言。如果他们已经有VB经验,那么我建议使用VB.Net/反之亦然

    虽然我个人更喜欢C的简洁语法:

    由于C#和VB.Net都编译成MSIL,所以它们的性能、功能、库和组件几乎相同。反射可以将MSIL代码分解为C#或VB.NET(或许多其他语言)

    <>这基本上让我们看到,C++看起来很像java和C++,它使它更具可信度。

    < P>我最喜欢的VB没有的特征是收益语句。它允许您轻松地从方法返回一个延迟计算的IEnumerable


    这里有一篇文章介绍这一点:

    极客中的街头信誉


    (不要假装这不重要!)

    我认为Kathleen Dollard的这篇博文为这个问题提供了极好的概述:

    她的第一个建议是:

    1) 忘掉尊重的事,否则就辞职 在你开始之前。VB是一个很好的工具 语言


    我认为乔希对语言差异做了一个很好的总结

    工具支持

    然而,VisualStudio处理这些语言的方式也存在差异。 代码片段更容易从C#编辑器中使用,重构也更好

    VB编辑器通过不始终显示所有选项来简化intellisense


    我确信还有更多的事情,但这些是我作为一个C#'er(很少使用VB)注意到的。

    目前VB.Net对lambda表达式的实现非常差。这意味着你不能像在C#中那样做整洁的事情。当然可以,但在大多数情况下,它需要一个非常丑陋的解决方法


    这在VB.Net 10.0中得到了解决。

    VB对错误有更好的反馈。在C语言中,您必须更频繁地编译,以获得语法中的所有错误

    VB.Net有一个根命名空间,而C#有一个不同的默认命名空间。因为当你在VB.Net中有一个根名称空间时,它总是在名称空间之前添加它

    例如:如果您在VB.Net中有一个名为namespace1的rootnamepsace,然后将其添加到文件中

    Namespace namespace1
      Public Class class1
      End Class
    End Namespace
    
    namespace namespace1{
      public class class1{}
    }
    
    然后您必须将其称为namespace1.namespace1.class1

    在C#中,如果您有一个名为namespace1的默认名称空间,并将其保存在文件中

    Namespace namespace1
      Public Class class1
      End Class
    End Namespace
    
    namespace namespace1{
      public class class1{}
    }
    

    那个么你们仍然可以把它称为名称空间1。其他人已经涵盖了很多不同之处——正如已经说过好几次的,它们几乎是等价的语言。就我所见,有一些差异尚未涵盖:

    VB9具有:

    • XML文本
    • 可变匿名类型(urgh)
    • 语言中更多的LINQ支持(C#仅涵盖少数运算符)
    • 语言中大量额外的位被编译成调用
      Parallel.For(1, 10000, Sub() _
          ' Do something '
      End Sub)
      
      String lastName as String
      
      Button1.Color() = Color.Red
      Button1.Color = Color.Red