在C#中,有没有办法(只是出于好奇,因为我今天遇到了多个变量的同值赋值),可以在单个语句中一次将一个值赋给多个变量?
以下内容(伪代码):
int num1 = 1;
int num2 = 1;
num1 & num2 = 5;
也许不是,但我认为这是值得一问的,以防类似的事情确实可能发生!
发布于 2009-09-14 00:57:01
它就像这样简单:
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
这意味着编译器会将该值赋给所有属性,而不会在每次赋值时都重新读取值。
发布于 2009-09-14 01:04:46
这将会是你想要的:
int num1, num2;
num1 = num2 = 5;
'num2 = 5‘赋值将返回赋值。
这允许你做一些疯狂的事情,比如将8赋值给num1的num1 = (num2 = 5) +3;
,尽管我不建议这样做,因为可读性不是很好。
发布于 2011-05-27 18:44:42
int num1=5,num2=5
在同一语句中声明和赋值变量。
https://stackoverflow.com/questions/1419252
复制相似问题