如何从C#中的方法访问构造函数中的变量

时间:2018-09-16 12:49:09

标签: c# class methods constructor properties

我想从方法访问构造函数内部声明的变量(数组)。我将如何实现?在下面的示例中,我想使用变量“ a”。

public example(int x)    
{  
    int[] a = new int[x];
}  

public void method()  
{
    for (int i = 0; i < a.Length; ++i)
    {
        // the usage of `a`
    }
}

3 个答案:

答案 0 :(得分:1)

我会为a创建一个私有字段,例如:

private readonly int[] _a;

public Example(int x)
{
   _a = new int[x];
}


public void method()
{
   for(int i = 0; i < _a.Length; ++i)
   // Rest of your code
}

请注意,如果要在构建_a之后对其进行修改,则必须删除readonly

答案 1 :(得分:0)

要实现的方法是将其声明为该类的属性。在构造函数中,您应该初始化私有属性。因此,代码如下所示:

    private int[] _a {get; set;}
    public example(int x)
    {
        int[] a = new int[x];
        _a = a;
    }

    public void method()
    {
        for (int i = 0; i < a; ++i)

答案 2 :(得分:0)

在您的代码中,变量'a'的作用域仅直到您在构造函数内部声明时才在构造函数的结尾。如果要在构造函数之外使用变量'a',则应在构造函数之外但在类范围内声明它。

class example
{
   private int[] a;
   public example(int x)    
   {  
      a = new int[x];
   }  

   public void method()  
   {
      for (int i = 0; i < a.Length; ++i)
      {
         // the usage of `a`
      }
   }
}

建议将此变量声明为私有成员,以便不能直接在类外部进行分配。