c# - 在单个语句中为多个变量分配相同的值

标签 c#

在 C# 中是否有任何方法(只是出于好奇,因为我今天遇到了对多个变量的多个相同值赋值)在单个语句中一次将一个值赋给多个变量?

类似的东西(伪代码):

int num1 = 1;
int num2 = 1;

num1 & num2 = 5;

可能不会,但我认为值得一问,以防类似的事情真的可能发生!

最佳答案

就这么简单:

num1 = num2 = 5;

当使用对象属性而不是变量时,有趣的是知道不会调用中间值的 get 访问器。对于分配序列中访问的所有属性,仅调用 set 访问器。

以每次调用 getset 访问器时写入控制台的类为例。

static void Main(string[] args)
{
    var accessorSource = new AccessorTest(5);
    var accessor1 = new AccessorTest();
    var accessor2 = new AccessorTest();

    accessor1.Value = accessor2.Value = accessorSource.Value;

    Console.ReadLine();
}

public class AccessorTest
{
    public AccessorTest(int value = default(int))
    {
        _Value = value;
    }

    private int _Value;

    public int Value
    {
        get
        {
            Console.WriteLine("AccessorTest.Value.get {0}", _Value);
            return _Value;
        }
        set
        {
            Console.WriteLine("AccessorTest.Value.set {0}", value);
            _Value = value;
        }
    }
}

这将输出

AccessorTest.Value.get 5
AccessorTest.Value.set 5
AccessorTest.Value.set 5

意思是编译器会把值赋给所有的属性,不会在每次赋值的时候都重新读取这个值。

关于c# - 在单个语句中为多个变量分配相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1419252/

相关文章:

c# - 将通用输入对象传递给方法 C#

c# - 在不同的类中使用某些变量 (C#)

c# - WPF 线程 C#

c# - ServiceStack JsonServiceClient 使用路由属性发送抛出异常未找到

c# - 如何从不包括查询字符串参数的url获取当前页面

c# - JQGrid 高级搜索 - 我们可以同时使用 "AND"和 "OR"运算符吗?

c# - 如何在 C# 2010.NET 中创建控件数组?

c# - Visual Studio 2015 调试输出显示 "Application Insights Telemetry: {"名称“:"Microsoft.ApplicationInsights.XXX.RemoteDependency"

c# - DAL 类(class)应该公开吗?

c# - 类对象数组的构造函数