为什么VB中的代码片段比C#更强大?

8
根据我阅读的http://msdn.microsoft.com/en-us/library/ms165394.aspx
对于VB: 在Snippet元素中,添加References元素和所有必需的子元素以在插入片段时向项目添加引用。
对于C#: Visual C#代码片段不支持References部分,因此必须手动向项目添加对System.Windows.Forms.dll的引用。
是什么根本原因使C#不能像VB一样支持References呢?
更新:我看到这篇文章发布了http://visualstudiogallery.msdn.microsoft.com/en-us/dc06b54c-b6c4-4cf5-8203-a09c6979e881 但它甚至没有Code Snippet References功能全面,Code Snippet References允许您一次性添加多个引用而不仅仅是一个一个地添加。
C#据说比VB.NET更“专业”,人们期望C#功能更强大而不是更受限制,或者“专业”是否意味着您必须像“手动”那样做呢:p C#团队何时会赶上VB.NET团队?

4
哦,有趣。如果这行得通的话,我就可以把我所有喜欢的参考资料都变成片段 ;) - Marc Gravell
5
因为VB团队包含了此功能,而其他团队没有,很可能是这样。 - Iain Ward
2
@Marc:你可能会对http://visualstudiogallery.msdn.microsoft.com/en-us/dc06b54c-b6c4-4cf5-8203-a09c6979e881和http://visualstudiogallery.msdn.microsoft.com/en-us/e8123d4c-e4dd-4d11-8fc0-fbe6c6382e8f感兴趣。 - Nicole Calinoiu
@Nicole 有趣,但比 VB.NET 代码片段添加引用更差。 - user310291
3个回答

13
C# IDE团队的Karen Liu在反馈报告中回答了这个问题:

感谢您提交这个建议。我们已经意识到这一点,并曾试图在设计变更请求中实现它。最终,基于实施成本和产品周期的考虑,在VS2005中没有包含引用是一个需要添加一次的事情,因此我们做出了艰难的决定。不过,这是我们将来要做的事情,听取反馈意见非常宝贵。

目前只有九个赞,不足以成为热门请求。我建议你点赞,他们确实会关注这个。

有趣的是,这份报告涉及添加引用而不是代码片段,因为对于代码片段来说,为什么不能使用相同的C#和VB.NET代码实现呢?毕竟它们几乎是一样的东西。 - user310291
1
VB.NET和C#的IDE看起来只是一样的。但实际上,在其内部,它们有非常不同的代码块。而且,它们有不同的团队来支持和开发。对于像微软这样的公司来说,小团队是一种生存策略,大团队行不通。 - Hans Passant
C# 被认为比 VB.NET 更加“专业”,人们会期望 C# 拥有更多的功能而不是更少,或者“专业”意味着你必须像“手动”一样用更困难的方式来完成它 :p - user310291
3
“那是一个非常具有含义的词汇,专业程序员在VB.NET中编写稳健代码没有问题。但Visual Basic IDE已经非常强大超过20年了。因此,在团队内部更受关注,C#团队需要一段时间才能赶上这么长的历史。” - Hans Passant
1
好的回答,就这样了。C#团队需要赶上VB.NET团队。 - user310291

11

根本原因在于VB认为该场景对其客户更有价值,因此投资于该功能。没有任何阻止C#添加该功能的问题。仅仅是当他们将其与其他IDE功能进行评估时,该功能未能达到切割列表。


我在想,这是否不是为了让商业伙伴通过开发第三方插件来赚钱。 - user310291
为什么C#团队不能使用VB.net源代码片段,因为它们几乎是相同的东西? - user310291
@JaredPar 为什么微软要提出这种劣质的替代品 http://visualstudiogallery.msdn.microsoft.com/en-us/dc06b54c-b6c4-4cf5-8203-a09c6979e881,而不是像 VB.NET 一样提供功能齐全的等效替代品呢? - user310291
@user310291不是微软员工,向画廊发布插件并不意味着微软提出替代方案。 - JaredPar
好的,那么C#团队什么时候会赶上VB.NET团队呢? - user310291
显示剩余2条评论

1

在我看来,C#更加“硬核”,而VB更加“快速完成并合同雇佣码农来完成”。这是出于政治原因。

因此,VB程序员通常会坚持使用标准(香草安装)Visual Studio安装,而C#程序员将安装一个或多个插件(Resharper、Coderush等),不计算额外组件(Telerik、Devexpress等)。相反,如果Visual Studio没有至少一个额外的代码辅助插件,C#将无法工作。


插件与决定无关。 - JaredPar
为什么不呢?事实上,支持C#的插件比VB.NET更多,几乎每个插件都比Visual Studio的替代品好十倍。 - magallanes
@malleganes,插件的数量并没有考虑在内。这是VB团队坐在房间里看着一个功能列表,然后说“考虑到成本,这将对客户有价值,并且不会迫使我们不实现我们认为更有价值的功能”。C#团队则没有想到同样的事情。 - JaredPar
微软回答插件是否有任何关联可能不符合政治正确性。 - user310291

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接