对于C#属性,我可以这样做:
public class Employee{
public string Name { get; private set; }
public Employee(string name){
Name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
这意味着Name属性可以在Employee类中设置并且可以公开读取.
但是,如果我想将集合限制在Employee类的构造函数中,我需要做:
public class Employee{
public readonly string Name = String.Empty;
public Employee(string name){
Name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,对于这种情况,我不得不将属性更改为字段.
是否有任何理由在C#中不可能/允许:
public class Employee{
public string Name { get; private readonly set; }
public Employee(string name){
Name = name;
}
}
Run Code Online (Sandbox Code Playgroud)
IMO这将允许我们拥有只能在构造函数中设置的属性,并且不需要我们将属性更改为字段...
谢谢!
使用
private readonly string name = Empty.String;
public string Name { get { return name; } }
Run Code Online (Sandbox Code Playgroud)