C#Property
Sifat dinamakan ahli kelas, struktur dan antara muka. Pembolehubah ahli atau kaedah dalam kelas atau struktur dipanggil Field . Properties ialah sambungan bagi Fields dan boleh diakses menggunakan sintaks yang sama. Mereka menggunakan aksesori untuk menjadikan nilai medan peribadi boleh dibaca, boleh ditulis atau dimanipulasi.
Hartanah tidak menentukan lokasi penyimpanan. Sebaliknya, mereka mempunyai akses yang boleh membaca, menulis atau mengira nilai mereka.
Sebagai contoh, terdapat kelas yang dipanggil Pelajar dengan medan peribadi untuk umur, nama dan kod. Kami tidak boleh mengakses medan ini secara langsung di luar skop kelas, tetapi kami boleh mempunyai sifat yang mengakses medan peribadi ini.
Aksessor
akses bagi
Hartanah mengandungi item yang membantu mendapatkan (membaca atau mengira) atau menetapkan (penyataan boleh laku untuk menulis) sifat. Perisytiharan pengakses boleh mengandungi pengakses dapatkan, pengakses yang ditetapkan atau kedua-duanya. Contohnya:// 声明类型为 string 的 Code 属性
public string Code
{
get
{
return code;
}
set
{
code = value;
}
}
// 声明类型为 string 的 Name 属性
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
// 声明类型为 int 的 Age 属性
public int Age
{
get
{
return age;
}
set
{
age = value;
}
}
ContohContoh berikut menunjukkan penggunaan sifat: using System; namespace tutorialspoint { class Student { private string code = "N.A"; private string name = "not known"; private int age = 0; // 声明类型为 string 的 Code 属性 public string Code { get { return code; } set { code = value; } } // 声明类型为 string 的 Name 属性 public string Name { get { return name; } set { name = value; } } // 声明类型为 int 的 Age 属性 public int Age { get { return age; } set { age = value; } } public override string ToString() { return "Code = " + Code +", Name = " + Name + ", Age = " + Age; } } class ExampleDemo { public static void Main() { // 创建一个新的 Student 对象 Student s = new Student(); // 设置 student 的 code、name 和 age s.Code = "001"; s.Name = "Zara"; s.Age = 9; Console.WriteLine("Student Info: {0}", s); // 增加年龄 s.Age += 1; Console.WriteLine("Student Info: {0}", s); Console.ReadKey(); } } }Apabila kod di atas disusun dan dilaksanakan, ia akan menghasilkan keputusan berikut :
Student Info: Code = 001, Name = Zara, Age = 9
Student Info: Code = 001, Name = Zara, Age = 10
Sifat Abstrak Kelas abstrak boleh mempunyai sifat abstrak, yang harus dilaksanakan dalam kelas terbitan. Program berikut menggambarkan ini: using System; namespace tutorialspoint { public abstract class Person { public abstract string Name { get; set; } public abstract int Age { get; set; } } class Student : Person { private string code = "N.A"; private string name = "N.A"; private int age = 0; // 声明类型为 string 的 Code 属性 public string Code { get { return code; } set { code = value; } } // 声明类型为 string 的 Name 属性 public override string Name { get { return name; } set { name = value; } } // 声明类型为 int 的 Age 属性 public override int Age { get { return age; } set { age = value; } } public override string ToString() { return "Code = " + Code +", Name = " + Name + ", Age = " + Age; } } class ExampleDemo { public static void Main() { // 创建一个新的 Student 对象 Student s = new Student(); // 设置 student 的 code、name 和 age s.Code = "001"; s.Name = "Zara"; s.Age = 9; Console.WriteLine("Student Info:- {0}", s); // 增加年龄 s.Age += 1; Console.WriteLine("Student Info:- {0}", s); Console.ReadKey(); } } }Apabila kod di atas disusun dan dilaksanakan, ia menghasilkan keputusan berikut:
Student Info: Code = 001, Name = Zara, Age = 9 Student Info: Code = 001, Name = Zara, Age = 10