为什么实例变量的值会根据函数值进行更改

Vik*_*ram -1 .net c# oop

我上课了.我有两个实例成员变量x和y,并且该类还有一个函数,它再次接受两个名为x和y的变量.

public class MyClass
{
    public int x;
    public int y;

    public int Add(int x , int y)
    {
        return (x + y);
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我正在创建类的实例并将值分配给实例变量.如果我使用相同的实例调用该函数,则实例变量的值将更改为我作为参数传递给函数的值,如图所示下面

        MyClass abs = new MyClass();
        abs.x = 10;
        abs.y = 11;
        Console.WriteLine(abs.Add(12, 13).ToString());
Run Code Online (Sandbox Code Playgroud)

调试时我发现实例变量的值分别变为12和13.为什么会这样?究竟发生了什么.

cre*_*mor 5

我确定实例字段没有改变.您很可能误解了调试器输出.如果只是观察xyAdd方法中,调试器(监视窗口)将显示方法参数的值.你需要看this.xthis.y.

这也是我总是用下划线开始我的实例字段的原因之一.