2014-01-24 74 views
2

我有一個局部類的兩個部分:聲明類字段,然後初始化它在另一個

public partial class Class1 : AnotherClass 
{ 
    int id; 
} 

public partial class Class1 
{ 
    public void func() 
    { 
     //here i need to access the id variable defined in the other part 
     id = 1; //this instruction raise an error "The name 'id' does not exists in the current context" 
    } 
} 

我如何可以訪問的變量?

+1

之外的方法? – Steve

+0

我編輯了標題,希望更好地傳達真正的問題。 – crush

+0

您的實際問題是,爲什麼未初始化的變量需要在另一部分中聲明(即現在它不再是部分)。 – Aphelion

回答

2

編譯器無法確定您的示例中哪個語句是第一個。在構造函數中初始化您的類級變量。

public partial class Class1 
{ 
    int id; 
} 

public partial class Class1 
{ 
    //here i need to access the id variable defined in the other part 
    public Class1() 
    { 
    id = 1; 
    } 
} 
7

您可以訪問現場,但你必須訪問它的一些方法/構造,你不能直接在類級別訪問。

public partial class Class1 
{ 
    public void SomeMethod() 
    { 
    id = 1; 
    } 
} 

如果你正在做現場初始化那麼它如果您在局部類中定義一個重載的構造函數,然後分配值一樣好:

public partial class Class1 
{ 
    public Class1(int id) 
    { 
    this.id = id; 
    } 
} 
+0

對不起,我忘了班級第二部分的功能。現在我已經添加了 – Albirex

+0

@Albirex,你的方法簽名是錯誤的,你應該指定返回類型而不是'function',它應該是這樣的:'public void func()'。但除此之外,只要兩個類都在單個命名空間中定義,就應該進行編譯。 – Habib

相關問題