有没有什么办法(只是出于好奇,因为我今天遇到了对多个变量的多个相同值赋值)在 C# 中一次将一个值分配给多个变量?
这些方面的东西(伪代码):
int num1 = 1; int num2 = 1; num1 & num2 = 5;
可能不是,但我认为值得一问,以防类似的事情实际上是可能的!
它很简单:
num1 = num2 = 5;
当使用对象属性而不是变量时,有趣的是知道get中间值的访问器没有被调用。对于在分配序列中访问的所有属性,仅set调用访问器。
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
这意味着编译器会将值分配给所有属性,并且不会在每次分配时重新读取该值。