我可能正在开始一项需要VB.NET的新工作,但我是一名C#开发人员,即使我能够理解代码,但从头开始编写代码对我来说似乎很麻烦。
有C#> VB.NET转换器(在线),您可以粘贴C#代码并将其转换为VB.NET代码。我的问题是,是否有任何人经历过这种情况,是否是一个很好的临时解决方案,或者我会遇到这么多困难?他们转换得好吗?
可能我会在Asp.net上运行代码。
示例转换器:http://www.developerfusion.com/tools/convert/csharp-to-vb/
提前致谢。
答案 0 :(得分:14)
不要使用转换器 - 学习VB.NET及其语法和C#之间的差异。
有一个非常好的比较备忘单here可以帮助您入门。
在实践中,您会发现大多数时候您以相同的方式与熟悉的.NET对象进行交互,并且您只有一些语法差异(尽管泛型和委托语法非常容易让人回避它们)。
微软已声明他们正试图引用both language to feature parity,所以你可以用C#做什么,你应该能够用VB.NET做(通常会有微小的差别)。
更新 - 不要忘记编译后的代码(在程序集中)应该在两种语言中完全相同(假设为CLS compliance),因此可以在C#中编写库以便与VB一起使用.NET,反之亦然。
答案 1 :(得分:1)
话虽如此,手动转换代码将是一项有价值的练习。通过手动转换,您将获得丰富的经验,并且您将了解可能有助于您前进的两种语言之间的一些主要差异。
答案 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#。最终的主要红利,你将更加多才多艺。