我正在审核一些我不认识的对象初始化模式的代码 - 有人能告诉我这种模式的用途(以及在哪里可以找到使用文档)?
obj.myType = (myVar = new MyType());
如果重要,具体用例如下;
protected MyType myVar;
protected readonly MyComplexType myComplexType;
protected void Page_Init(object sender, EventArgs e)) {
...
myComplexType.myType = (myVar = new MyType());
...
}
答案 0 :(得分:19)
它只是分配相同的值两次 - 一次到myVar
,一次到myComplexType.myType
。
相当于
var tmp = new MyType();
myVar = tmp;
myComplexType.myType = tmp;
(在某些复杂的情况下,可能会有类型转换,但我不认为在这种特殊情况下会有任何转换。)
当然,您不需要使用额外的局部变量。此代码“有些相同”但涉及从myVar
读取,因此与完全相同,但更有可能是您使用的内容:
myVar = new MyType();
myComplexType.myType = myVar;
没有特定的名称,并且相对很少使用表达式中其他位置的赋值结果,最常见的例子是:
string line;
while ((line = reader.ReadLine()) != null)
{
...
}