C# Properties

Giới thiệu về C# Properties

Trong ngôn ngữ lập trình C#, Properties (thuộc tính) là một cách tiếp cận để quản lý truy cập vào các trường dữ liệu trong một lớp (class). Properties hỗ trợ việc đóng gói (encapsulation) và cho phép bạn kiểm soát việc đọc và ghi dữ liệu thông qua các phương thức getter và setter, mà không cần phải công khai trực tiếp các trường dữ liệu của lớp.

Định nghĩa

Properties là các thành phần của một lớp cho phép bạn xác định phương thức để truy cập và thiết lập giá trị cho các trường dữ liệu mà không cần phải làm việc trực tiếp với chúng. Điều này giúp dễ dàng hơn trong việc xử lý bất kỳ logic bổ sung nào mà bạn muốn thực hiện khi giá trị được lấy hoặc đặt.

Cú pháp

Cú pháp cơ bản để khai báo một property trong C# như sau:

[access_modifier] [datatype] [property_name]
{
    get
    {
        // Logic để lấy giá trị
    }
    set
    {
        // Logic để thiết lập giá trị
    }
}

Trong đó, access_modifier có thể là public, private, protected, v.v.; datatype là kiểu dữ liệu của property; và property_name là tên của property.

Ví dụ về C# Properties

Ví dụ 1: Property đơn giản

Dưới đây là một ví dụ về một lớp sinh viên với một property tên là Name.

public class Student
{
    private string name; // Trường dữ liệu riêng

    // Property để truy cập trường dữ liệu
    public string Name
    {
        get { return name; } // Phương thức getter
        set { name = value; } // Phương thức setter
    }
}

Trong ví dụ này, Name là một property công khai cho phép người dùng lấy và thiết lập giá trị cho trường name.

Ví dụ 2: Property chỉ đọc

Có thể tạo một property chỉ đọc bằng cách không định nghĩa phương thức setter. Ví dụ:

public class Student
{
    private string name;

    public string Name
    {
        get { return name; }
    }

    public Student(string name)
    {
        this.name = name; // Khởi tạo trường dữ liệu
    }
}

Trong trường hợp này, bạn có thể lấy giá trị của Name nhưng không thể thay đổi nó từ bên ngoài lớp.

Ví dụ 3: Auto-Implemented Properties

C# cũng hỗ trợ một cách viết ngắn gọn hơn cho properties bằng cách sử dụng auto-implemented properties. Dưới đây là một ví dụ:

public class Student
{
    public string Name { get; set; } // Auto-implemented property
}

Trong ví dụ này, bạn không cần phải khai báo một trường dữ liệu riêng. C# sẽ tự động tạo một trường hỗ trợ cho property của bạn.

Kết luận

C# Properties là một công cụ mạnh mẽ giúp quản lý việc truy cập vào các trường dữ liệu trong lớp một cách an toàn và hiệu quả. Bằng cách sử dụng properties, bạn có thể kiểm soát việc truy cập cũng như thêm logic tùy chỉnh khi đọc hoặc ghi dữ liệu.