c# - C#中的方法参数赋值

标签 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)
    {
    }
}

最佳答案

参数获取赋值的值。

考虑这样的代码:

int x = 0;
int y = (x = 1);
x = 42;
foo.Bar(y);

即使 x 被再次更改,y 仍然包含 1

关于c# - C#中的方法参数赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3637268/

相关文章:

c# - 'System.Data.Entity.Internal.AppConfig' 的类型初始值设定项引发了 Windows XP 异常

c++ - 如何将具有 "deleted"复制构造函数和赋值运算符的类放入映射中?

java - 无效赋值运算符错误 >= Java

c++ - 为什么内置赋值返回一个非 const 引用而不是 C++ 中的 const 引用?

c++ - 调用重载赋值运算符后的析构函数调用 - C++

c# - LINQ to Entities - 四舍五入到最接近的美元、最接近的半美元或根本不舍入

c# - 在 Project Server 2013 CSOM 中处理草稿项目时出现 CSOMUnknownUser 错误

c# - 我如何使用 RegEx Asp.net C# 获取 BODY html 标记(来自字符串)内的所有内容#

c# - Microsoft.ServiceBus.NamespaceManager - 托管服务标识 (MSI)

c++11 - "deleting"C++11 中的复制构造函数/赋值