在 C# 中是否有任何方法(只是出于好奇,因为我今天遇到了对多个变量的多个相同值赋值)在单个语句中一次将一个值赋给多个变量?
类似的东西(伪代码):
int num1 = 1;
int num2 = 1;
num1 & num2 = 5;
可能不会,但我认为值得一问,以防类似的事情真的可能发生!
最佳答案
就这么简单:
num1 = num2 = 5;
当使用对象属性而不是变量时,有趣的是知道不会调用中间值的 get
访问器。对于分配序列中访问的所有属性,仅调用 set
访问器。
以每次调用 get
和 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
意思是编译器会把值赋给所有的属性,不会在每次赋值的时候都重新读取这个值。
关于c# - 在单个语句中为多个变量分配相同的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1419252/