程序输出what&;为什么?
本文关键字:为什么 amp 输出 what 程序 | 更新日期: 2023-09-27 18:19:40
此程序的输出为:0 0
有谁能告诉我为什么会出现这种输出吗?
namespace ConsoleApplication
{
class Sample
{
int i;
Single j;
public void SetData(int i, Single j)
{
i = i;
j = j;
}
public void Display()
{
Console.WriteLine(i + " " + j);
}
}
class MyProgram
{
static void Main(string[ ] args)
{
Sample s1 = new Sample();
s1.SetData(10, 5.4f);
s1.Display();
}
}
}
您将获得0,0作为输出,因为在SetData
方法中,变量i
和j
是该方法的局部变量。正因为如此,类级别的变量i
和j
不会被赋值。
public void SetData(int i, Single j)
{
i = i;
j = j;
}
将上述代码更改为:
public void SetData(int i, Single j)
{
this.i = i; // using this will refer to the class level variables
this.j = j;
}
或者您可以用不同的名称命名局部变量,这样局部变量就不会隐藏类级别的变量。
public void SetData(int a, Single b)
{
i = a;
j = b;
}
现在输出将是10和5.4
此程序的输出将为0 0
。在方法SetData()
中,您将值分配给相同的变量,这些变量仅在该范围内。因此,该值不会分配给类的变量。如果您想将值分配给类变量,那么只需将SetData()
方法修改为
public void SetData(int i, Single j)
{
this.i = i;
this.j = j;
}
这会奏效的。
我希望这个解释能对你有所帮助