C#中的assignment operator返回指定的值。 目前尚不清楚此功能在何处/如何有用。以这种奇怪的语法使用它可以为您节省一行代码,但不会对可读性有任何好处:
private String value;
public void SetAndPrintValue(String value)
PrintValue(this.value = value);
}
private static void PrintValue(String value) {
/* blah */
}
那么它的目的是什么?
答案 0 :(得分:12)
Chained assignment是许多语言的主要内容,可以追溯到C(可能更早)。 C#支持它,因为它是这些语言的一个共同特征,并且有一些有限的使用 - 就像goto
语句一样。
有时您可能会看到如下代码:
int a, b, c;
for(a = b = c = 100; a <= b; c--)
{
// some weird for-loop here
}
或者这个:
var node = leaf;
while(null != node = node.parent)
node.DoStuff();
这可能会使一些代码更紧凑,或者允许你做一些聪明的技巧,但它肯定不会使它更具可读性。在大多数情况下,我建议不要这样做。
答案 1 :(得分:4)
我通常用它来为控件分配相同的属性。
btnSubmit.Enabled = btnAdd.Enabled = btnCancel.Enabled = txtID.Enabled= false;