C#:为单个语句中的多个variables分配相同的值
有没有什么办法(只是出于好奇,因为我遇到了多个相同的值赋予多个variables今天)在C#中一次分配一个值到多个variables在一个单一的报表?
沿着这些线(伪代码)的东西:
int num1 = 1; int num2 = 1; num1 & num2 = 5;
可能不是,但我认为这是值得问一些类似的情况实际上是可能的!
这很简单:
num1 = num2 = 5;
当使用对象属性而不是variables时,有趣的是知道中间值的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
这意味着编译器会将值赋给所有的属性,每次赋值时都不会重新读取值。
这将做你想要的:
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;