C# 区分大小写与不区分大小写的语言?

C# 区分大小写与不区分大小写的语言?,c#,.net,vb.net,case-sensitive,C#,.net,Vb.net,Case Sensitive,visual basic.net不区分大小写,因此它允许程序员编写代码,而无需关心或记住变量的大小写。如果您在声明中使用的变量以外的其他情况下使用该变量,它还可以避免“未声明变量”错误。事实上,它的行终止是一个直线进给,使得它更像C或C++,在外壳和连续战争中需要良好的处理,与{}跟踪,匹配它们并找出哪个是哪个。 我的问题是,c#比vb有什么优势?因为它们都被编译成MSIL,所以两种语言之间几乎没有性能差异。首先,c#的社区要大得多。 例如,像这样的站点上的绝大多数代码示例都在C#中 我的建议当

visual basic.net不区分大小写,因此它允许程序员编写代码,而无需关心或记住变量的大小写。如果您在声明中使用的变量以外的其他情况下使用该变量,它还可以避免“未声明变量”错误。事实上,它的行终止是一个直线进给,使得它更像C或C++,在外壳和连续战争中需要良好的处理,与{}跟踪,匹配它们并找出哪个是哪个。
我的问题是,c#比vb有什么优势?因为它们都被编译成MSIL,所以两种语言之间几乎没有性能差异。

首先,c#的社区要大得多。

例如,像这样的站点上的绝大多数代码示例都在C#中


我的建议当然是选择C#,如果仅仅是因为这个原因。

外壳不会让我兴奋;特别是对于任何一个像样的IDE,你都会有智能感知、自动完成、自动更正等。最坏的情况是:编译器会为你找到它。我真的不相信被迫进入特定的行空间模式是一件好事(是的,我使用VB已经很多年了)

的确,c#和VB.net有很多的收敛性,尤其是现在的dynamic(这有助于填补c#bs VB.net中唯一真正的差距)

对于一个强大的c#特性:迭代器块(也称为yield-return)。也;lambda语法更加完整/通用

但有一个不太具体的论点:在广泛使用了这两种语言之后,我发现c语言更具表现力,更易于阅读/维护,更简洁。简言之:我非常喜欢它;)

还有一种情况是,从java/c/c++/JavaScript所熟悉的语法开始可以使传输更容易。

基本上没有

VB.NET是为了吸引现有的Visual Basic/Office程序员,C++来吸引那些喜欢java/C++的人。

< P>我来自德尔菲的背景,几年前我感觉到了你的病例敏感性。但当我与C#(学习套管惯例)一起工作了几天后,我注意到这是一个比预期小得多的错误源

在静态类型语言中区分大小写并不重要。

在区分大小写的语言中,即使在没有IDE的情况下编程,您也不会经常出错,因为您知道大小写不是任意的,而是遵循约定的(一些语言,如Cobra甚至强迫您遵循约定)。有了IDE,它就更不重要了,因为intellisense正在为您修复它

IMO强制您在任何地方都遵循约定,这将导致更好的可读性代码。当我在Delphi(不区分大小写)中编程时,我的外壳非常不一致。但是,不区分大小写语言的现代IDE应该具有格式文档特性,使identifiert上的大小写与声明标识符时使用的大小写相同。同样,这在现代IDE技术中已经过时了

对于某些动态类型的语言,区分大小写是必不可少的


虽然这不适用于VB与C,但一些动态类型语言(lua、javascript)只能在区分大小写的情况下工作。这是因为在它们中,
string
键进入字典,成员名称几乎相同。区分大小写的词典比不区分大小写的词典功能更强大。

如果这听起来很主观,请留下评论,以便我编辑问题。这是主观的-这个问题有一个很好的位置,关于程序员堆栈交换-。重复:我想问一下这两种语言的区别以及每种语言的优缺点。虽然这听起来很主观,但还有很多技术细节需要讨论about@Ali塔希尼:不管它值多少钱,C#和VB.NET之间的差别实际上是微不足道的。这两种语言之间有一些细微的差异,但大部分都是语法上的差异,而语法实际上只对程序员重要。正如您所说,两者都编译为MSIL,因此大多数关于性能差异的争论都是由于测试代码准备不足或被误解造成的。任何精通其中一个的程序员都应该在几周内熟悉另一个。VB.NET也有XML文本,看起来很简洁,但作为一名C#编码器,我想知道我是否会使用它们@andynormancx-确切地说;我从来没有因为缺少它们而感到贫穷。当我使用“真正的差距”时,它们实际上就是我所想到的,因为我不认为它们是一个缺失的特征。