set访问器的名称是什么,只允许在构造函数中设置值?

Joa*_*nge 3 .net c# properties accessor

public class MyClass
{
  public string Name {get; KEYWORD set;}

  public MyClass(string name)
  {
    this.Name = name;
  }
}
Run Code Online (Sandbox Code Playgroud)

任何关于KEYWORD的想法是什么?我搜遍了所有,但很难在谷歌找到get/set访问器.

Dar*_*rov 10

如果你想只能在构造函数中设置值,我建议你使用readonly关键字:

public class MyClass
{
    private readonly string _name;
    public MyClass(string name)
    {
        _name = name;
    }

    public string Name 
    {
        get { return _name; }
    }
}
Run Code Online (Sandbox Code Playgroud)


djd*_*d87 7

private关键字允许的财产从类中的任何位置进行设置:

private set;
Run Code Online (Sandbox Code Playgroud)

即:

public string Name {get; private set;}
Run Code Online (Sandbox Code Playgroud)

如果您还想允许从继承类设置它,则可以使用protected.

您可以使用readonly关键字仅允许设置属性一次,但不能在自动实现的属性上使用.

  • 您可能会收到错误,因为您的财产不公开. (4认同)
  • @Joan Venge,阻止此类设置字段的任何其他部分的唯一方法是使用`readonly`关键字. (2认同)