为什么赋值运算符在C#中返回赋值?
C#中的赋值运算符返回指定的值。 目前尚不清楚此function在何处/如何有用。 以这种奇怪的语法使用它可以为您节省一行代码,但不会对可读性有任何好处:
private String value; public void SetAndPrintValue(String value) PrintValue(this.value = value); } private static void PrintValue(String value) { /* blah */ }
那么它的目的是什么?
链式赋值是许多语言的主要内容,可以追溯到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();
这可能会使一些代码更紧凑,或者允许你做一些聪明的技巧,但它肯定不会使它更具可读性。 在大多数情况下,我建议不要这样做。
我通常使用它为控件分配相同的属性。
btnSubmit.Enabled = btnAdd.Enabled = btnCancel.Enabled = txtID.Enabled= false;