在 C# 中执行此操作是否安全?
field = Property = value;
是否保证 setter 和 getter 被连续调用,并且field
只会分配 getter 的结果而不一定value
?编译器会将其优化为 justvalue
吗?
在 C# 中执行此操作是否安全?
field = Property = value;
是否保证 setter 和 getter 被连续调用,并且field
只会分配 getter 的结果而不一定value
?编译器会将其优化为 justvalue
吗?
使用
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# 语言基础
您甚至可以将相同的值分配给多个变量,如下所示:
整数a,b,c,d;
a = b = c = d = 5;
在这种情况下,a、b、c 和 d 的值都为 5。这是因为 C# 编译器首先执行最右边的赋值;也就是说,d = 5。该赋值本身返回一个值,即值 5。然后编译器将该返回值赋给 c。第二个赋值也返回一个值,依此类推,直到所有变量都被赋值。