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

  public MyClass(string name)
  {
    this.Name = name;
  }
}

任何想法 KEYWORD 是什么?我到处搜索,但很难在 google 中找到 get/set 访问器。

4

4 回答 4

10

如果您希望能够仅在构造函数中设置值,我建议您使用readonly关键字:

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

    public string Name 
    {
        get { return _name; }
    }
}
于 2010-09-02T20:12:53.810 回答
7

private关键字允许从类中的任何位置设置属性:

private set;

IE:

public string Name {get; private set;}

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

您可以使用readonly关键字只允许设置一次属性,但它不能用于自动实现的属性。

于 2010-09-02T20:11:12.847 回答
2

我知道在字段上使用 READONLY 关键字可以让您在该字段中写入一次,并且它必须仅在构造函数中。

于 2010-09-02T20:13:45.353 回答
1

像 GenericTypeTea 说的你可能正在寻找 private 关键字。

但是,为了清楚起见,将您的 set 访问器设为私有不会将其限制为仅构造函数,而是在类中。

要使属性只能从构造函数中设置,您需要这样的东西

public class MyClass
{
  private string name;
  public string Name {get { return name;} }

  public MyClass(string nameString)
  {
    name = nameString;
  }
}
于 2010-09-02T20:15:59.160 回答