2014-02-18 49 views
0

在VB中,我有像類:轉換VB子過程以C#

Public Class Example 
    Public test1 As New List(of String) 
    Public test2 As New List(of String) 

    Public Sub Init() 
     //code logic here 
    End Sub 
End Class 

我的理解是,該子初始化()過程的工作原理是在C#中的主要方法,在每次的實施例類被使用時,該方法被自動初始化。這是一個正確的理解?這個子程序如何用C#編寫?

回答

5

我的理解是,這個Sub Init()過程像C#中的主要方法一樣工作,每次使用Example類時,都會自動初始化此方法。

不,這不是要麼Init方法Main方法在C#中有正確的認識,據我所知。

這是只是一種名爲Init的方法,沒有什麼特別的。如果這是一個New方法,那將對應於C#構造函數,但這是另一回事。

您的類等同於:

using System.Collections.Generic; 

public class Example 
{ 
    public List<string> test1 = new List<string>(); 
    public List<string> test2 = new List<string>(); 

    public void Init() 
    { 
     // code logic here 
    } 
} 

這有可能是這個類中的一些框架,它會自動尋找Init方法,並與反射執行他們正在使用,但是這不是VB語言的一部分。

+0

也有在我轉換代碼的新方法 - !你能上,以及如何闡述會轉換爲C#? – suhMAN

+0

@suhman:正如我的答案中已經指出的那樣,您只需將其轉換爲C#中的構造函數即可。 (它*是* VB中的一個構造函數,它只是VB中的構造函數使用名稱爲New的'Sub'來表示,而在C#中它們使用類型名稱來表示。) –

0

試試這個:

public class Example 
{ 
public List<string> test1 = new List<string>(); 

public List<string> test2 = new List<string>(); 
public void Init() 
{ 
     //code logic here 
} 
} 
0

只是一個側面說明...

在老同學VB6有在課堂上的「初始化」的方法,這是一個現代的.Net構造相當於:

Private Sub Class_Initialize() 
    mvarHeight = 5 
End Sub` 

參見Class_Initialize Changes for Visual Basic 6.0 Users

顯然,這隻會是相關的,如果你把一些很老的代碼...