在同事的工作场所,正在尝试决定是在工作场所使用这两种语言还是在一种语言上实现标准化?有一些VB.Net开发人员和一些C#开发人员.
使用两者或使用两者有什么优点或缺点?
编辑:为了澄清这个问题,问题不是要求一方面的优势,而是标准化两种语言与标准化一方的优点/缺点.
例如,有一点可能是C#/ VB.Net可能有更多第三方工具可用,因此将所有开发人员标准化为该语言可能是有意义的.
我们应该为这次讨论戴上我们的现实眼镜.这不仅仅是句法糖.
你会发现,你可以编写代码非常在Visual Basic.NET迅速.这主要是由于C#尚未提供的一些功能:即My命名空间,它提供了大量功能,C#开发人员必须经常手动编写代码.(如果你问我的话,这是一个该死的耻辱.)
我每天都用两种语言编码.Visual Basic中表单的编码事件处理程序是一个快照,并且很明显哪些方法处理哪些事件.在C#中并不总是那么清楚.另一方面,您不能总是像在Visual Basic中那样显式,因为Visual Basic为您完成了大量工作.C#的优势在于让你的方式不受限制,让你深入了解螺母和螺栓.很多时候,这是非常自由的.
VB将允许您在对象实例上调用静态/共享方法.C#不会.当您尝试移植代码时,您将学到很难的方法.C#会抱怨无法访问的代码; VB并不关心这种或那种方式.
但在引擎盖下,当你接下来的时候,它就是.NET.这一切都归结为MSIL.会有细微的差别.例如,Visual Basic不关心C#的名称区分大小写.而且最重要的是CLR也是如此.当你尝试使用反射时,你会意识到.这是否意味着你不应该使用VB?不.只要确保你的内容始终如一 - 尤其是你的命名空间.(命名空间"My"和命名空间"my"是两个与C#和CLR完全不同的命名空间,但它们与VB相同.)
选择最有效的语言,减少加速时间和维护成本.您可能会发现这意味着使用这两种语言.(我们的确是!)
编辑解决OP的编辑:
两种语言都有重构工具.
自动化单元测试工具同样适用.
第三方控件将可用于两种语言,因为它们已编译为MSIL.
现在,对于IDE生产力工具,C#目前VB没有的一件事就是StyleCop.这可能会很快改变(我希望它会改变),但我并不认为这是任何想象力的障碍.
这是与工作场所传说相结合的个人经历:
至于现实生活 - 我在C#和VB.NET中编写自己的代码.我相信,因为为.NET编写的代码中有很多是针对框架对象的调用,所以差异实际上非常小.如果你能用两种语言声明变量,那么80%是可移植的.如果您了解框架,语言的语法是一个小障碍.
编辑直接回答你的问题:我们很高兴使用两者(虽然主要是VB.NET),并没有遇到任何问题.我们使用Visual Studio,它允许我们非常自由地混合代码文件/程序集.我鼓励你不要限制一种语言 - 我认为一些多样性对大脑有好处.