程序输出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();
        }
    }
}

程序输出what&;为什么?

您将获得0,0作为输出,因为在SetData方法中,变量ij是该方法的局部变量。正因为如此,类级别的变量ij不会被赋值。

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;
    }

这会奏效的。

我希望这个解释能对你有所帮助