是的,它曾经是,现在仍然是 .NET 中的最佳实践。要添加 4 的图像
myObject.MyExpensiveMethod().MyProperty
显然你不想这样做:
myObject.MyExpensiveMethod().MyProperty =
myObject.MyExpensiveMethod().MyProperty + 4;
因为它调用了两次昂贵的方法,而+=只调用了一次。你可以这样做:
var temp = myObject.MyExpensiveMethod();
temp.MyProperty = temp.MyProperty + 4;
这更便宜,但它最便宜:
myObject.MyExpensiveMethod().MyProperty += 4;
由于昂贵的方法只被调用一次。
另一种情况是当您使用具有副作用的方法时,您只想调用一次:
myFactory.GetNextObject().MyProperty += 5;
你_当然不会
myFactory.GetNextObject().MyProperty = myFactory.GetNextObject().MyProperty + 5;
您可以再次使用临时变量,但复合赋值运算符显然更简洁。
诚然,这些都是边缘情况,但这并不是一个坏习惯。