C# 访问器


// 普通形式的访问器
class Person
{
  // name是存储数据的变量
  // Name是一个“属性Property”,像是搭的一个访问数据的桥
  // 两者的名称不能相同,但是应该相近
  private string name; // field
  public string Name   // property 后面没有分号,访问权限是public
  {
    get { return name; } // 实际上读取的是name
    set { name = value; } // value是关键字
    // 可以控制赋值和取值的流程了
    // 像是重载了等号
  }
}
 
class Program
{
  static void Main(string[] args)
  {
    Person myObj = new Person();
    myObj.Name = "Liam"; // 访问的时候是以变量的方式访问,不是Get/Set函数
    Console.WriteLine(myObj.Name);
  }
}
 
// 以下使用一种简短的形式,不需要变量,直接使用“属性Property”
// 这样和普通的public变量有什么区别?可以控制读写权限,可以是只读或只写等
class Person
{
  public string Name  // property
  { get; set; }
}
 
class Program
{
  static void Main(string[] args)
  {
    Person myObj = new Person();
    myObj.Name = "Liam";
    Console.WriteLine(myObj.Name);
  }
}