C#中的方法参数赋值

Jac*_*hea 3 c# assignment-operator

给定下面的代码,bar(int y)中的方法参数y是否会被赋予x或1中的值?我意识到它们在逻辑上是等价的,但我想了解赋值操作.

class Program
{
    static void Main(string[] args)
    {
        var foo = new Foo();
        var x = 0;
        foo.Bar(x = 1);
    }
}

public class Foo
{
    public void Bar(int y)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

Guf*_*ffa 6

参数获取赋值的值.

考虑这样的代码:

int x = 0;
int y = (x = 1);
x = 42;
foo.Bar(y);
Run Code Online (Sandbox Code Playgroud)

尽管x另一次改变了,y仍然包含1.