我想从方法访问构造函数内部声明的变量(数组)。我将如何实现?在下面的示例中,我想使用变量“ 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`
}
}
答案 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`
}
}
}
建议将此变量声明为私有成员,以便不能直接在类外部进行分配。