最近要把一個用C#寫的組件修改為VB.net的,由於以前對VB不是很熟悉,在修改的時候,發現很多的對應寫法都要查,沒有對照表,查起來就非常費事,諮詢了一下思歸,問有沒有VB.net 跟 C# 對應文法的關係表,思歸反饋下面的地址:
http://www.harding.edu/USER/fmccown/WWW/vbnet_csharp_comparison.html
VB.NET and C# Comparison
考慮到那個頁面開啟比較慢,我把它同時收藏到我的文章裡面:串連在:
http://blog.joycode.com/ghj/posts/15091.aspx
一些C#代碼 與 VB.net 代碼的轉換的工具可以看以下地址:
http://authors.aspalliance.com/aldotnet/examples/translate.aspx
http://www.kamalpatel.net/ConvertCSharp2VB.aspx
http://www.ragingsmurf.com/vbcsharpconverter.aspx
http://w1.311.telia.com/~u31115556/desc/programs.htm
http://expert.csdn.net/Expert/topic/1645/1645967.xml
我試用了這幾個轉換器,個人感覺第一個http://authors.aspalliance.com/aldotnet/examples/translate.aspx?是這幾個裡面最好的。
我的實驗是把一個分頁組件從C#代碼修改為VB.net代碼,這個分頁組件可以看:
http://www.microsoft.com/china/msdn/archives/library/dnaspp/html/PagerControls.asp
C#代碼轉換為VB.net代碼後,我稍作修改,就可以用了。我做的修改主要是以下幾個地方:
1、VB.net 中類、枚舉預設不是Public 的,轉換的時候可能有問題。
2、事件觸發代碼不一樣。比如如下代碼:
C#如下寫:
protected virtual void OnClick(EventArgs e)
{
if (Click != null)
{
Click(this, e);
}
}
VB.net 如下寫:
Protected Overridable Sub OnClick(e As EventArgs)
RaiseEvent Click(Me, e)
End Sub
3、轉換後屬性資訊會放錯地方。如果有注釋的話,會錯誤的放到注釋前面。
如果需要從C#代碼轉換為VB代碼的,強烈建議這個工具,一般的代碼,轉換後就可以運行,複雜的代碼,稍稍修改,就可以了。強烈推薦。