gpt4 book ai didi

c# - 这个对象初始化器模式叫什么?

转载 作者:IT王子 更新时间:2023-10-29 04:43:59 28 4
gpt4 key购买 nike

我正在审查一些我不认识的对象初始化模式的代码 - 谁能告诉我这个模式叫什么(以及在哪里可以找到有关使用的文档)?

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());
...
}

最佳答案

它只是将相同的值分配两次 - 一次分配给 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)
{
...
}

关于c# - 这个对象初始化器模式叫什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36493525/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com