2014-10-28 99 views
-1

這裏內部類是代碼:C#創建另一個類

public class Alpha 
{ 
    public Alpha() 
    { 
     Beta beta = new Beta(); 
    } 
    public class Beta 
    { 
    } 
} 

我實例阿爾法是這樣的:

Alpha alpha = new Alpha(); 

爲什麼我不能從阿爾法訪問測試版?
當我輸入「Alpha」。視覺工作室不會顯示「測試版」作爲選擇。
也爲什麼我不能使用「公共」的alpha或測試版?

+3

它在構造函數中的上下文中的局部變量,你能指望什麼? – thumbmunkeys 2014-10-28 12:14:15

+0

雖然我知道你想要什麼,但我現在再次感到困惑 – Vajura 2014-10-28 12:15:30

+0

你想做什麼? – 2014-10-28 12:15:33

回答

0

你的變量測試只在您的Alpha類的構造函數在本地創建的,並會盡快走出去的範圍作爲構造完成,所以你不能從外部訪問beta變量。 要達到A類之外的變量,你有一個定義成員屬性與公共訪問,如:

public class Alpha 
{ 
    // property to access member variable from outside 
    public Beta beta{ get; private set; } 

    public Alpha() 
    { 
     // initialize the member with a new instance 
     beta = new Beta(); 
    } 
    public class Beta 
    { 
    } 
} 
0

像這樣的事情?

Alpha.Beta ab = new Alpha.Beta(); 
+0

不正確,這只是創建一個新的實例Beta – 2014-10-28 13:21:51

+0

是真的,但那是我怎麼解釋它 – BenD 2014-10-28 13:40:42

0

試試這個: 創建一個名爲Alpha.cs 在這個示例類創建方法方法在測試屬性來訪問。

public class Alpha 
    { 
     public Alpha() 
     { 
      betaTest = new Beta(); 
     } 

     private Beta betaTest = null; 

     public Beta BetaTest 
     { 
      get { return betaTest; } 
      set { betaTest = value; } 
     } 



     public class Beta 
     { 
     } 

    } 

之後,您可以實例化Alpha和Beta,並按照您認爲合適的方式使用它們。

我附上簡短的例子

Alpha alpha = new Alpha(); 
Alpha.Beta b = new Alpha.Beta(); 
b = alpha.BetaTest; 

enter image description here