为什么我可以为仅具有GET的属性设置值

时间:2020-04-04 16:53:47

标签: c#

对不起,这是一个愚蠢的问题,只是从书中学习,我看到了以下代码:

public IConfiguration Configuration { get; }

public Startup(IConfiguration configuration)
{
    Configuration = configuration;
}

我的问题是这是如何工作的?没有set;,我们正在为该属性分配一个值。

1 个答案:

答案 0 :(得分:5)

这被称为“自动实现的属性”(简称“自动属性”),因为没有定义“支持字段”(或获取访问器逻辑),因此编译器会自动创建一个支持字段。 / p>

仅具有get访问器的属性(“自动”或其他属性)是只读属性。

可以在构造函数中设置(初始化)只读的auto属性,如图所示。

自动属性也可以在声明时初始化:

public IConfiguration Configuration { get; } = [some IConfiguration];