6
在C#中这样做是否安全?多项任务(field = Property = value)
field = Property = value;
能够保证所有的setter和getter相继被调用,将field
只能分到吸气剂的结果,并不一定value
?编译器会优化它到value
吗?
在C#中这样做是否安全?多项任务(field = Property = value)
field = Property = value;
能够保证所有的setter和getter相继被调用,将field
只能分到吸气剂的结果,并不一定value
?编译器会优化它到value
吗?
使用
private int tada;
public int TADA
{
get
{
Console.WriteLine("GETTER");
return tada;
}
set
{
Console.WriteLine("SETTER");
tada = value;
}
}
和
int s = TADA = 1;
我只得到SETTER写入到输出窗口,因此似乎在呼吁,吸气不。
可以为相同的值,即使分配给多个变量,例如:
INT A,B,C,d;
a = b = c = d = 5;
在这种情况下,a,b,c和d都将具有值5.此作品 因为C#编译器首先执行最右边的赋值; 是,d = 5。该赋值本身返回一个值,值为5.然后编译器 将该返回值赋给c。第二个赋值 也会返回一个值,依此类推,直到所有变量已被分配为 。
在这种情况下,不会调用“属性”上的吸气剂。如果你需要让它通过getter运行,你需要分离赋值:'Property = value; field = Property;' –
http://stackoverflow.com/questions/13714246/assignment-and-sequence-points-how-is-this-ambiguous – Azodious