c# - 变量赋值有类型?这个叫什么?

标签 c# .net variable-assignment

在延迟加载的属性 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/

相关文章:

c# - 哪些书籍帮助您掌握了 n-Tier 开发

c# - 在代码中构建分析支持

c# - 当涉及到带有大量可选参数的函数时,约定是什么?

C:类型转换成不同尺寸的结构

c - int i :3 in variable assignment? 是什么意思

c# Lambda 表达式,使用 Automapper 将 list<type1> 转换为 list<type2>

c# - 关于抽象类?

c# - 如何将 .NET 库移动到子目录?

.net - 冗余命名空间会产生任何开销吗

c - 将逗号分隔的多个整数分配给 C 中的一个 int - 为什么这样做有效?做什么的?