VB.NET for C#Developer

时间:2011-07-26 14:26:00

标签: c# asp.net vb.net

我可能正在开始一项需要VB.NET的新工作,但我是一名C#开发人员,即使我能够理解代码,但从头开始编写代码对我来说似乎很麻烦。

有C#> VB.NET转换器(在线),您可以粘贴C#代码并将其转换为VB.NET代码。我的问题是,是否有任何人经历过这种情况,是否是一个很好的临时解决方案,或者我会遇到这么多困难?他们转换得好吗?

可能我会在Asp.net上运行代码。

示例转换器:http://www.developerfusion.com/tools/convert/csharp-to-vb/

提前致谢。

5 个答案:

答案 0 :(得分:14)

不要使用转换器 - 学习VB.NET及其语法和C#之间的差异。

有一个非常好的比较备忘单here可以帮助您入门。

在实践中,您会发现大多数时候您以相同的方式与熟悉的.NET对象进行交互,并且您只有一些语法差异(尽管泛型和委托语法非常容易让人回避它们)。

微软已声明他们正试图引用both language to feature parity,所以你可以用C#做​​什么,你应该能够用VB.NET做(通常会有微小的差别)。


更新 - 不要忘记编译后的代码(在程序集中)应该在两种语言中完全相同(假设为CLS compliance),因此可以在C#中编写库以便与VB一起使用.NET,反之亦然。

答案 1 :(得分:1)

您可以尝试Telerik Code Converter

话虽如此,手动转换代码将是一项有价值的练习。通过手动转换,您将获得丰富的经验,并且您将了解可能有助于您前进的两种语言之间的一些主要差异。

答案 2 :(得分:1)

我会说你的代码会起作用,但你会错过一些没有C#等价的特殊功能,这会使你的代码更适合这种语言。一些例子:

  • 在C#中,您为+=分配事件处理程序,该处理程序将转换为AddHandler。但是,在VB中,使用WithEvents instance variables更为常见。这与ASP.NET特别相关,其中C#经常使用AutoEventWireup功能,该功能通过WithEvents在VB中完成。

  • 在C#中,您通过 LINQ to XML 方法调用访问XML,这将被转换为VB中的匹配方法调用。但是,在VB中,使用integrated language support for XML

  • 更自然

答案 3 :(得分:1)

这适用于转换大部分代码,但这不是一个完整的解决方案。您将遇到的一件事是转换器知道如何处理C#的索引器括号([])与方法括号(())。 VB使用括号作为索引器和方法,并且无法知道使用哪个。

我已经完成了对这些事情的转换,并最终决定它们太麻烦了,而且手动转换它要容易得多。我来自VB背景,所以这对我来说不是一件大事。

但是,对于您想要做的事情,您需要学习VB.NET语法。用C#编写所有内容并将其转换为VB.NET并不是一个好的长期解决方案。你最终将不得不学习VB.NET。你的经理不会热衷于你没有学习你所聘用的语言的核心基础知识。

答案 4 :(得分:1)

不要这样做......有转换器,但你会发现,一旦你了解了关键的区别,你就可以了。您将以相同的方式与.NET库交互,因此大部分编程都是相同的。

我最近刚刚换了工作,反其道而行之。我很高兴我花时间学习C#。最终的主要红利,你将更加多才多艺。