2014-10-28 96 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

相关问题