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

有没有什么办法(只是出于好奇,因为我遇到了多个相同的值赋予多个variables今天)在C#中一次分配一个值到多个variables在一个单一的报表?

沿着这些线(伪代码)的东西:

int num1 = 1; int num2 = 1; num1 & num2 = 5; 

可能不是,但我认为这是值得问一些类似的情况实际上是可能的!

这很简单:

 num1 = num2 = 5; 

当使用对象属性而不是variables时,有趣的是知道中间值的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 

这意味着编译器会将值赋给所有的属性,每次赋值时都不会重新读取值。

这将做你想要的:

 int num1, num2; num1 = num2 = 5; 

'num2 = 5'赋值将返回赋值。

这可以让你做像num1 = (num2 = 5) +3; 这将分配8 num1,虽然我不会build议这样做是不可读的。

 int num1=5,num2=5 

在相同的语句中声明和分配variables。

尝试这个:

 num1 = num2 = 5; 

请注意,这不会在VB中工作。

num1 = num2 = 5

 int num1, num2, num3; num1 = num2 = num3 = 5; Console.WriteLine(num1 + "=" + num2 + "=" + num3); // 5=5=5 

像这样的东西。

 num1 = num2 = 5 

你的例子是:

 int num1 = 1; int num2 = 1; num1 = num2 = 5; 

语法上略短一些,但采取了其他人已经陈述的内容。

 int num1, num2 = num1 = 1; 

很简单。

 int num1,num2; num1 = num2 = 5;