在C#中执行此操作是否安全?
field = Property = value;
是否可以保证连续调用setter和getter,field
只会为getter的结果分配value
?编译器会将其优化为value
吗?
答案 0 :(得分:5)
使用
private int tada;
public int TADA
{
get
{
Console.WriteLine("GETTER");
return tada;
}
set
{
Console.WriteLine("SETTER");
tada = value;
}
}
和
int s = TADA = 1;
我只将SETTER写入输出窗口,因此它似乎不会调用getter。
您甚至可以为多个变量分配相同的值,如下所示:
int a,b,c,d;
a = b = c = d = 5;
在这种情况下,a,b,c和d都将具有值5.这是有效的 因为C#编译器首先执行最右边的赋值;那 是,d = 5.该赋值本身返回一个值,值为5 然后编译器将返回的值赋给c。第二次任务 还返回一个值,依此类推,直到所有变量都已存在 分配