C#: Assign same value to multiple variables in single statement
在C中是否有任何方法(只是出于好奇,因为我今天遇到了对多个变量的多个相同值赋值)在一个语句中一次将一个值赋给多个变量?
沿着这些线的东西(伪代码):
1 2 3 4 | int num1 = 1; int num2 = 1; num1 & num2 = 5; |
可能不是,但我认为这是值得问的,以防类似的事情实际上是可能的!
它很简单:
1 | num1 = num2 = 5; |
当使用对象属性而不是变量时,有趣的是要知道中间值的
例如,每当调用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | 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; } } } |
这将输出
1 2 3 | AccessorTest.Value.get 5 AccessorTest.Value.set 5 AccessorTest.Value.set 5 |
这意味着编译器将为所有属性分配该值,并且不会在每次分配该值时重新读取该值。
这将是您想要的:
1 2 | int num1, num2; num1 = num2 = 5; |
"num2=5"赋值将返回赋值。
这允许你做一些疯狂的事情,比如
1 | int num1=5,num2=5 |
在同一语句中声明和分配变量。
试试这个:
1 | num1 = num2 = 5; |
请注意,这在VB中不起作用。
NUM1= NUM2=5
像这样。
1 | num1 = num2 = 5 |
1 2 3 4 5 | int num1, num2, num3; num1 = num2 = num3 = 5; Console.WriteLine(num1 +"=" + num2 +"=" + num3); // 5=5=5 |
在句法上稍短一点,但采用了其他人已经说过的话。
1 | int num1, num2 = num1 = 1; |
你的例子是:
1 2 3 4 | int num1 = 1; int num2 = 1; num1 = num2 = 5; |
这很简单。
1 2 | int num1,num2; num1 = num2 = 5; |