在 C# 中,可以使用 getter 和 setter 来声明属性。如果没有设置器那么它不应该允许设置?
但是这个 .net core 3.1 示例教程显示了分配给此类属性的值。这怎么被允许呢?
代码:
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration {get;}
}
Run Code Online (Sandbox Code Playgroud)
只读属性只能设置:
{ get; })只读属性实现为只读字段,在构造函数内设置该属性时,直接设置只读字段。
所以您发布的代码相当于:
public class Startup
{
private readonly IConfiguration _configuration;
public IConfiguration Configuration => _configuration;
public Startup(IConfiguration configuration)
{
_configuration = configuration;
}
}
Run Code Online (Sandbox Code Playgroud)