在表达式中使用赋值是否可以?

1 c# expression variable-assignment

我遇到了这个代码,并希望其他人提供他们的观点......是好还是坏?;)

Class ReportClass
{
 public string ReportName {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

然后在代码中使用如下:

displayReport(ReportClass.ReportName = cmbReportName.SelectedValue.ToString())
Run Code Online (Sandbox Code Playgroud)

这是我能给你的最简单的形式例子.排队是......为什么我找不到例子?这叫什么?这只是在惹麻烦吗?

编辑:我指的是就地分配.直到今天我才意识到这一点

Jon*_*eet 6

我倾向于避免就地分配 - 或者确实是这样的任何副作用 - 除了一个常见的习语:

string line;
while ((line = reader.ReadLine()) != null)
{
    // Do something with line    
}
Run Code Online (Sandbox Code Playgroud)

(以及阅读流等的变体)

我也可以在参数调用中使用对象初始化器,例如

Foo(new Bar { X=1, Y=2 });
Run Code Online (Sandbox Code Playgroud)

但是,分配给现有对象中的属性......好吧,这都是主观的,但这不是我的一杯茶.