【发布时间】:2019-02-20 14:02:18
【问题描述】:
我想从方法访问在构造函数中声明的变量(数组)。我将如何实现这一目标?在下面的示例中,我想使用变量“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`
}
}
【问题讨论】:
-
你可以创建一个字段
int[] a -
将'a'声明为类变量或静态类变量
-
你不能。它不是那样工作的。您需要将其移到构造函数之外。
-
你必须定义一个field 来持有它。你在这里所做的被声明为一个局部变量。一旦函数(在这种情况下是构造函数)完成,该变量就不能再访问了。
-
@OfirWinegarten 严格来说它有点复杂,因为它仍然可以使用一些“黑客”来访问这个变量的数据,比如直接从内存中的指针读取。说这个变量会被垃圾回收器收集就够了,不能从外部范围访问
标签: c# class methods constructor properties