65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.56/5 (5投票s)

2007年9月9日

3分钟阅读

viewsIcon

30684

downloadIcon

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。

Screenshot - img5.jpg

Screenshot - img4.jpg

Screenshot - img3.jpg

Screenshot - img2.jpg

Screenshot - img1.jpg

Screenshot - img6.jpg
之后您会得到一份报告。

这并非魔法,会出现错误,但解决起来并不难。
转换器真正很好地嵌入在 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

© . All rights reserved.