使用 C-Sharpener For VB 将 Xdock VB 转换为 C#。






2.56/5 (5投票s)
2007年9月9日
3分钟阅读

30684

301
通过 C-Sharpener for VB 将 XDock 项目从 VB 转换为 CS。
引言
本文讨论了将 vb 转换为 c# 的问题
我看到了这个好主意 xDock.asp,我想用 C# 实现同样的功能
因为最初的代码是用 VB dotnet 编写的。
背景
所以我心里想,翻译它应该不会太难,或者找个自动翻译器。我使用了 http://labs.developerfusion.co.uk/convert/csharp-to-vb.aspx,但它有很多东西没有翻译,并且出现了错误。
Public Sub Add(ByVal Item As IDockItem, Optional ByVal Key As String = Nothing, Optional ByVal Before As IDockItem = Nothing, Optional ByVal After As IDockItem = Nothing)
被转换为
public void Add(IDockItem Item, // ERROR: Unsupported modifier : In, Optional string Key, // ERROR: Unsupported modifier : In, Optional IDockItem Before, // ERROR: Unsupported modifier : In, Optional IDockItem After)
Information.IsNumeric(Value))
被转换为
Information.IsNumeric(Value)) -> 但在 CSharp 中没有 IsNumeric..
使用 C-Sharpener For VB
我在网站上看到了一个 VB 转换为 C# 的翻译器:http://www.elegancetech.com/ : C-Sharpener For VB
他们为开源项目提供免费翻译,所以我问他们是否可以将 XDock 从 VB 翻译成 C#
所以他们给了我一个授权去做这件事。
我将描述翻译器是如何工作的,以及我遇到了什么问题。
它在 MSVC 中的集成很好。
您必须加载您的 vb 项目并应用翻译器 C-Shaperer for VB。
之后您会得到一份报告。
这并非魔法,会出现错误,但解决起来并不难。
转换器真正很好地嵌入在 msvc Express 中,并且它创建了一个项目
在这种情况下是 XDock_CS,并转换 le res 文件和依赖项。
例如,在文件 IsNumeric 中如果翻译得很好,我从未遇到过这个问题。
主要难点在于 XDock 文件 iniFile.vb,因为在此代码中
作者没有对 ArryaList 中的对象进行类型声明。
它可以是 Key 或 ArrayList。
但是 C# 比 VB 宽松。
( 我很难理解 )
所以在 C# 中,object 永远是 object,但在 C# 中,您必须将此 object 转换为您想要的正确的 object。
没有任何信息可以知道,因此翻译器无法找到它。
( 我猜在 VB 中,可以在运行时找到类型 )
我注释了这行,因为我不明白如何翻译
DockWindow.cs
//pSkinMenu = this.mnuSkins.MenuItems.Add( pDirectory.Name, new /* TRANSERROR: 替换为正确的委托 */ UnknownDelegate( ContextHandler ) );
所以我删除了一些功能,只保留了带有图标的控件移动。
我分享我的工作。
我对 C-Sharpener For VB 这个产品印象深刻,因为我对 VB 一无所知,但我在这个任务中取得了成功。
而且这个网络转换器对于简单的翻译来说很好,但这个产品可以轻松地翻译整个项目。
感谢
<a href="http://www.csharpenerforvb.com"><img src="convertedby.gif" alt="由 C-Sharpener For VB 从 VB.NET 转换为 C#"></a>
Roger Jack of
www.elegancetech.com