C # - Thuộc tính
Propertieslà các thành viên được đặt tên của các lớp, cấu trúc và giao diện. Các biến hoặc phương thức thành viên trong một lớp hoặc các cấu trúc được gọiFields. Thuộc tính là phần mở rộng của các trường và được truy cập bằng cách sử dụng cùng một cú pháp. Họ dùngaccessors qua đó giá trị của các trường riêng có thể được đọc, ghi hoặc thao tác.
Thuộc tính không đặt tên cho các vị trí lưu trữ. Thay vào đó, họ cóaccessors đọc, ghi hoặc tính toán các giá trị của chúng.
Ví dụ, chúng ta có một lớp tên là Sinh viên, với các trường riêng cho tuổi, tên và mã. Chúng ta không thể truy cập trực tiếp các trường này từ bên ngoài phạm vi lớp, nhưng chúng ta có thể có các thuộc tính để truy cập các trường riêng tư này.
Người truy cập
Các accessorcủa thuộc tính chứa các câu lệnh thực thi giúp nhận (đọc hoặc tính toán) hoặc thiết lập (ghi) thuộc tính. Khai báo trình truy cập có thể chứa trình truy cập nhận, trình truy cập đặt hoặc cả hai. Ví dụ -
// 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;
}
}
Thí dụ
Ví dụ sau minh họa việc sử dụng các thuộc tính:
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();
}
}
}
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
Student Info: Code = 001, Name = Zara, Age = 9
Student Info: Code = 001, Name = Zara, Age = 10
Thuộc tính trừu tượng
Một lớp trừu tượng có thể có một thuộc tính trừu tượng, thuộc tính này sẽ được triển khai trong lớp dẫn xuất. Chương trình sau đây minh họa điều này -
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();
}
}
}
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
Student Info: Code = 001, Name = Zara, Age = 9
Student Info: Code = 001, Name = Zara, Age = 10