什么用C#.NET使它更适合对某些项目比VB.NET?
What in C#.NET makes it more suitable for some projects than VB.NET?
业绩?能力?库/组件?声誉?可靠性?可维护性?,放心?
Performance?, Capabilities?, Libraries/Components?, Reputation?, Reliability? Maintainability?, Ease?
基本上任何 C#可以做的,这是不可能的使用VB,或反之亦然。 事情你不得不考虑当选择C#/ VB的一个项目。
Basically anything C# can do, that is impossible using VB, or vice versa. Things you just have to consider when choosing C#/VB for a project.
C#和VB基本上是相同的但有一些细微的差别。除了明显的语法差异有以下区别:
C# and VB are basically the same however there are some minor differences. Aside from the obvious grammar differences you have the following differences:
在C#中可以调用不安全code VB有可选的参数(即将在C#4.0) VB是比较容易做后期绑定调用时使用(即将在C#4.0),这和一些做2化妆用VB做办公自动化干净多了。 在VB中有一堆的帮手函数和类像我的命名空间;然而,所有这一切都可以访问到C# VB是不区分大小写C#的语法遵循类似的语法C和Java,这使其成为一个更舒适的那些语言,在这里为VB可以更舒服的VB用户过渡。至于性能,和库或组件它们几乎是一样的。
C#'s syntax follow a similar grammar to c and java, which make it a much more comfortable transition from those languages, where as VB can be more comfortable to VB users. As far performance, and libraries or components they are nearly identical.
至于哪一种选择,除非你有必要做不安全的操作,然后选择它是最自然的,你的语言。经过多年作为一个VB开发人员,我爱没有写如果yadada然后.....结束如果如果(yadaya){....}救了我的腕管了一些额外的按键(然后可以在回答这样用问题)
As for which one to choose, unless you have a need to do unsafe operations, then choose the language which is most natural to you. After years of being a VB developer I loved not having to write If yadada then.....End If if (yadaya){....} saves my carpal tunnel a few extra keystrokes (Which can then be used on answering SO questions)
刚刚获悉一个更多的差异BTW C#和VB的是,VB支持过滤例外,所以你可以像这样的伪:
Just learned one more difference btw C# and VB is that VB supports filtered exceptions so you could something like this pseudo:
try
{
//do something that fails
}
catch(Exception ex when ArgumentException,
ArgumentNullException, FormatException)
{
//Only handle these three types
}
这不应该与能力做困惑:
This should not be confused with the ability to do:
try
{
//something that fails
}
catch(ArgumentException)
{
//Log Error
}
catch(ArgumentNullException)
{
//Log Error
}
在这种情况下,你会以不同方式处理异常在VB世界里,你可以定义一条code处理多种类型的异常。
In this case you are going to handle the exceptions differently in the VB world you could define one piece of code to handle multiple types of Exceptions.
一些更多的差异。
VB的运营商是比较两个对象,以确定它们是否是编译的CEQ IL指令,其中的C#编译为isinst IL相同。所以,下面的是等效的声明 C#
如果(foo是FooObject){}
VB
如果TypeOf运算foo是FooObject然后
下一篇:在洋葱架构依赖解析洋葱、架构