小编典典

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

all

有没有什么办法(只是出于好奇,因为我今天遇到了对多个变量的多个相同值赋值)在 C# 中一次将一个值分配给多个变量?

这些方面的东西(伪代码):

int num1 = 1;
int num2 = 1;

num1 & num2 = 5;

可能不是,但我认为值得一问,以防类似的事情实际上是可能的!


阅读 82

收藏
2022-07-07

共1个答案

小编典典

它很简单:

num1 = num2 = 5;

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

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

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

这意味着编译器会将值分配给所有属性,并且不会在每次分配时重新读取该值。

2022-07-07