Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 公共只读字段v.s.get only属性_C#_C# 6.0 - Fatal编程技术网

C# 公共只读字段v.s.get only属性

C# 公共只读字段v.s.get only属性,c#,c#-6.0,C#,C# 6.0,在某些情况下,您是否希望使用公共只读字段v.s.作为仅自动实现的属性 public class Foo { public readonly string Hello; public string Hello2 { get; } } 两者都只能在构造函数期间设置,并且都提供类外的只读访问。。我有点累了,所以可能遗漏了一些内容。一个原因是数据绑定-.net实现了绑定到属性,但没有绑定到公共字段 这里有一些讨论:将其作为属性而不是字段意味着可以在接口上使用它 确切的实现(虽然自动属

在某些情况下,您是否希望使用公共只读字段v.s.作为仅自动实现的属性

public class Foo
{
    public readonly string Hello;

    public string Hello2 { get; }
}

两者都只能在构造函数期间设置,并且都提供类外的只读访问。。我有点累了,所以可能遗漏了一些内容。

一个原因是数据绑定-.net实现了绑定到属性,但没有绑定到公共字段


这里有一些讨论:

将其作为属性而不是字段意味着可以在接口上使用它


确切的实现(虽然自动属性实际上没有太多的实现…)也是抽象的,因此将来您可以在不破坏(编译)兼容性的情况下将其建立在字段组合的基础上。

非常好的示例,谢谢,我知道这里明显缺少一些东西。我想知道的上下文是默认asp.net核心模板中的Startup.cs,有趣的是,Startup没有实现接口,但可能该属性在其他地方被用作挂钩。我真的想标记your和PaulF的作为答案,因为它们都有意义,他会稍微早一点,但如果可以,我也会标记你的!