visual basic.net不区分大小写,因此它允许编码人员在不关心或记住变量的情况下进行编写。如果你在另一个案例中使用变量而不是声明中使用的变量,它也会从“未声明的变量”错误中解脱出来。它的线路终端是一个换行的事实使它更加可读,不像C#或c ++需要在套管和连续战争中保持良好的关注,跟进{},匹配它们并找出哪个是哪个。
我的问题是c#over vb有什么优点,知道两者都被编译成MSIL所以这两种语言几乎没有性能差异?
答案 0 :(得分:3)
套管不会让我兴奋;特别是对于任何体面的IDE,你都会有智能感知,自动完成,自动纠正等。最坏的情况:编译器会为你找到它。并且我真的不要购买强制进入特定的行空间模式是一件好事(是的,我使用VB多年)。
c#和VB.net确实有很多融合,特别是现在有了动态(这有助于插入c#bs VB.net中唯一的真正的缺口)。
对于强大的c#功能:迭代器块(也称为yield return)。也; lambda语法更完整/更通用。
但是一个不太具体的论点:广泛使用,我发现c#更具表现力,更易于阅读/维护,更清洁。简而言之:我喜欢它很多;)
还有一种情况是,使用java / c / c ++ / JavaScript熟悉的语法开始,使传输更容易。
答案 1 :(得分:2)
答案 2 :(得分:2)
我来自德尔福的背景,几年前感觉像是关于区分大小写。但是,一旦我使用C#(学习套管惯例)几天,我注意到这是一个比预期更小的错误来源。
静态类型语言中的区分大小写并不重要。
在敏感语言的情况下,即使在没有IDE的情况下进行编程也不会出错,因为你知道外壳不是任意的,而是遵循惯例(像Cobra这样的某些语言甚至强迫你遵循惯例)。使用IDE它甚至不那么重要,因为intellisense正在为你修复它。
IMO强迫您遵循惯例,导致更好的可读代码。当我用Delphi编程(不区分大小写)时,我的外壳非常不一致。但是,不区分大小写的语言的现代IDE应该具有Format-Document功能,这使得标识符上的大小写与声明的标识符一样。因此,现代IDE技术已经过时了。
对于某些动态类型语言,区分大小写非常重要
虽然这不适用于VB vs C#,但某些动态类型语言(lua,javascript)仅适用于区分大小写。这是因为在它们string
中键入字典和成员名称几乎相同。区分大小写的词典比不区分大小写的词典更强大。
答案 3 :(得分:1)
基本上没有。
创建VB.NET是为了吸引现有的Visual Basic / Office程序员,C#引诱那些喜欢Java / C ++的程序员。