在延迟加载的属性 getter 中看到类似这样的东西:
public SomeClass SomeProperty
{
get
{
return _someVar ?? (_someVar = new SomeClass());
}
}
对我来说,发生的事情似乎很明显,我只是设法使用 C# 多年,却没有注意到这会起作用:
int i = 0;
(i = 1).GetType();
我想我的主要问题是,这是否有某种特殊名称,我可以用它来搜索更多关于它的信息/向其他人描述它?我想我很好奇是否有任何与之相关的陷阱(执行顺序等,类似于将多个空合并运算符链接在一起时必须考虑的内容),或者是否有任何其他标准用途这就像上面看到的延迟加载的属性 getter(尽管我认为与替代方案相比它不是特别干净)。
我几乎不好意思发布这个,因为这似乎是一件很难不曾想过/看过的东西,哈哈。提前致谢。
最佳答案
这只是在 C# 中赋值是表达式的结果。来自C# specification :
The result of a simple assignment expression is the value assigned to the left operand. The result has the same type as the left operand and is always classified as a value.
关于c# - 变量赋值有类型?这个叫什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13732407/