2011-09-01 81 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构造函数/析构函数的差异更具体的细节。