多重赋值(字段 = 属性 = 值)
Posted
技术标签:
【中文标题】多重赋值(字段 = 属性 = 值)【英文标题】:Multiple assignment (field = Property = value) 【发布时间】:2013-06-18 09:18:43 【问题描述】:在 C# 中这样做安全吗?
field = Property = value;
是否保证setter和getter被连续调用,field
只会分配getter的结果而不一定value
?编译器会将其优化为仅 value
吗?
【问题讨论】:
Property
上的 getter 在这种情况下不会被调用。如果你需要让它通过getter,你需要分开赋值:Property = value; field = Property;
***.com/questions/13714246/…
【参考方案1】:
使用
private int tada;
public int TADA
get
Console.WriteLine("GETTER");
return tada;
set
Console.WriteLine("SETTER");
tada = value;
和
int s = TADA = 1;
我只将 SETTER 写入输出窗口,所以它似乎没有调用 getter。
来自C# Language Fundamentals
您甚至可以将相同的值分配给多个变量,如下所示:
int a, b, c, d;
a = b = c = d = 5;
在这种情况下,a、b、c 和 d 的值都为 5。这行得通 因为 C# 编译器首先执行最右边的赋值;那 是,d = 5。该赋值本身返回一个值,即值 5。 然后编译器将该返回值分配给 c。第二个任务 也返回一个值,依此类推,直到所有变量都已 已分配。
【讨论】:
以上是关于多重赋值(字段 = 属性 = 值)的主要内容,如果未能解决你的问题,请参考以下文章