具有相同名称的局部变量和全局变量及其工作原理
本文关键字:全局变量 工作 局部变量 | 更新日期: 2023-09-27 18:33:45
有人可以告诉我程序流程和给定片段之外。我在 VS 上尝试了这个并得到了 0 0 作为输出,我想知道它是如何工作的。谢谢。
static void Main(string[] args)
{
Sample s1 = new Sample();
s1.getdata(10, 5.4f);
s1.displaydata();
}
class Sample
{
int i;
Single j;
public void getdata(int i,Single j)
{
i = i;
j = j;
}
public void displaydata()
{
Console.WriteLine(i + " " + j);
}
}
由于局部变量优先于类变量,因此永远不会设置类变量。在 getdata
方法中,您将局部(方法范围)变量设置为它们自己的值。因此,在 displaydata
方法中,您正在打印整数 (0) 的默认值。
若要解决此问题,可以更改变量的名称(例如,通过前缀)或使用 this
设置范围。
public void getdata(int i,Single j)
{
this.i = i;
this.j = j;
}