2011-09-01 80 views
2

我已經超出了VB.Net的方式太長了,我有一個需要轉換爲VB.Net的C#自定義類,想知道它們之間的主要區別。在C#中的某些東西,我似乎無法在Vb.Net做類,如使用:在VB.net公共類名或公共[類名(數據表DT)C#和VB.Net自定義類之間的區別

我班如下所示:

public class subcontractor 
{ 
    public int organization_id { get; set; } 
    public int subcontractor_id { get; set; } 
    public int project_id { get; set; } 
    public List<evaluationpoint> points { get; set; } 

    public subcontractor() { } 
    public subcontractor(DataTable dt) 
    { 
     organization_id = Convert.ToInt32(dt.Rows[0]["organization_id"].ToString()); 
     subcontractor_id = Convert.ToInt32(dt.Rows[0]["subcontractor_id"].ToString()); 
     project_id = Convert.ToInt32(dt.Rows[0]["project_id"].ToString()); 
     points = new List<evaluationpoint>(); 
     foreach (DataRow dr in dt.Rows) 
     { points.Add(new evaluationpoint(dr)); } 
    } 

    public class evaluationpoint 
    { 
     public int category_id { get; set; } 
     public int eval_id { get; set; } 
     public int rating { get; set; } 

     public evaluationpoint() { } 
     public evaluationpoint(DataRow dr) 
     { 
      category_id = Convert.ToInt32(dr["category_id"].ToString()); 
      eval_id = Convert.ToInt32(dr["eval_id"].ToString()); 
      rating = Convert.ToInt32(dr["rating"].ToString()); 
     } 
    } 
} 

有什麼區別

回答

4

首先,read this

在構造VB.NET是不同的語法:

C#

Class Foo 
{ 
    public Foo(int arg) { } 
} 

VB

Class Foo 
    Public Sub New(ByVal arg as Integer) 

    End Sub 
End Class 

您可以在大多數情況下在VB中做任何事你可以在C#中使用.NET,你只需要改變你的synt適當地斧頭那裏有很多參考資料,可以使用它。

+0

自從我涉足VB以來,它已經很長時間了,如果不夠用,這些東西就會從內存中滑落。我知道語法有很大的不同,只是忘記了如何在自己內部安裝一個新類,謝謝 – mattgcon

+0

'as Integer'甚至:) – Guffa

+0

@Guffa:我不經常使用VB,因爲你可以告訴:)謝謝,我修復了它 –

1

如果你的項目在VB.NET中實現,你的其他項目(甚至是C#)仍然可以調用VB.NET方法(反之亦然)。

單個Visual Studio解決方案可以具有VB.NET項目和C#項目。每個(具有適當的項目引用)都可以訪問其他的方法和類,因爲它們都是.NET類,它們已經被編譯到MSIL中供CLR運行。

+0

我需要實際採取c#類並將其實施到VB.Net項目。你是說我可以簡單地將C#類放入我的VB.Net項目中,而沒有問題? – mattgcon

+0

不,您可以做的是將C#庫項目添加到您的解決方案中,將C#類添加到該項目,然後從VB.net項目中添加對該項目的引用。然後你可以從VB.net項目中訪問你的C#類,你不需要重寫任何東西。 –

+0

查看更新。 –

0

構造函數的語法是相當不同的;在C#中使用的類名,在VB中使用新的,例如

Class SubContractor 

    Public Sub New() 
    End Sub 

    Public Sub New(dt As DataTable) 
    End Sub 

End Class 

有上的差異,包括在這個cheat sheet構造函數/析構函數的差異更具體的細節。