C# 属性 Properties
-
属性 Properties
Properties被命名为类,结构和接口的成员。类或结构中的成员变量或方法称为字段。属性是字段的扩展,可以使用相同的语法进行访问。它们使用访问器,通过它们可以读取,写入或操纵私有字段的值。属性未命名存储位置。相反,他们有存取读取,写入,或计算它们的值。例如,让我们有一个名为Student的类,其中包含年龄,姓名和代码的专用字段。我们不能从类范围之外直接访问这些字段,但是我们可以具有用于访问这些私有字段的属性。 -
存取器
访问属性包含可执行语句,有助于获取(读取或计算)或设置(写入)属性。访问者声明可以包含获取访问者,设置访问者或两者。例如-// Declare a Code property of type string: public string Code { get { return code; } set { code = value; } } // Declare a Name property of type string: public string Name { get { return name; } set { name = value; } } // Declare a Age property of type int: public int Age { get { return age; } set { age = value; } }
以下示例演示了属性的使用-
尝试一下using System; namespace tutorialspoint { class Student { private string code = "N.A"; private string name = "not known"; private int age = 0; // Declare a Code property of type string: public string Code { get { return code; } set { code = value; } } // Declare a Name property of type string: public string Name { get { return name; } set { name = value; } } // Declare a Age property of type int: 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() { // Create a new Student object: Student s = new Student(); // Setting code, name and the age of the student s.Code = "001"; s.Name = "Zara"; s.Age = 9; Console.WriteLine("Student Info: {0}", s); //let us increase age s.Age += 1; Console.WriteLine("Student Info: {0}", s); Console.ReadKey(); } } }
编译并执行上述代码后,将产生以下结果-Student Info: Code = 001, Name = Zara, Age = 9 Student Info: Code = 001, Name = Zara, Age = 10
-
抽象属性
抽象类可能具有抽象属性,应在派生类中实现。以下程序说明了这一点-
尝试一下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; // Declare a Code property of type string: public string Code { get { return code; } set { code = value; } } // Declare a Name property of type string: public override string Name { get { return name; } set { name = value; } } // Declare a Age property of type int: 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() { // Create a new Student object: Student s = new Student(); // Setting code, name and the age of the student s.Code = "001"; s.Name = "Zara"; s.Age = 9; Console.WriteLine("Student Info:- {0}", s); //let us increase age s.Age += 1; Console.WriteLine("Student Info:- {0}", s); Console.ReadKey(); } } }
编译并执行上述代码后,将产生以下结果-Student Info: Code = 001, Name = Zara, Age = 9 Student Info: Code = 001, Name = Zara, Age = 10