有人可以告诉我程序流程和给定的片段。我在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);
}
}
答案 0 :(得分:5)
由于局部变量优先于类变量,因此永远不会设置类变量。在getdata
方法中,您将本地(方法作用域)变量设置为它们自己的值。因此,在displaydata
方法中,您将打印整数(0)的默认值。
要解决此问题,您可以通过为它们添加前缀来更改变量的名称,或使用this
来设置范围。
public void getdata(int i,Single j)
{
this.i = i;
this.j = j;
}