Property và tính đóng gói trong C#
Trong bài học này, bạn sẽ dùng property có kiểm tra dữ liệu để bảo vệ đối tượng khỏi những giá trị không hợp lệ.
Giới thiệu
Tính đóng gói (encapsulation) nghĩa là giữ dữ liệu bên trong đối tượng và chỉ cho phép thay đổi qua những cách đã được kiểm soát. Trong C#, property cho phép bạn viết logic kiểm tra ngay khi gán giá trị, trong khi nơi sử dụng vẫn dùng cú pháp đơn giản như với một biến thông thường.
Trường _price được khai báo private nên bên ngoài không truy cập trực tiếp được. Property Price đọc và ghi qua trường này, trong đó phần set chỉ chấp nhận giá trị không âm và ném ra ArgumentOutOfRangeException nếu giá bị âm. Nhờ vậy một Product không bao giờ có giá sai, và giá trị 19.95 được in ra bình thường.
Ví dụ C# chạy được
using System;
class Product
{
private decimal _price;
public decimal Price
{
get => _price;
set => _price = value >= 0 ? value : throw new ArgumentOutOfRangeException();
}
}
class Program
{
static void Main()
{
var product = new Product { Price = 19.95m };
Console.WriteLine(product.Price);
}
}
19.95Luyện tập với trình gỡ lỗi
Luyện tập với thử thách
Áp dụng kiến thức của bài học này để giải một bài toán thực tế. Mỗi thử thách chạy ngay trên trình duyệt, có kiểm thử tức thì và AI nhận xét.
Tất cả thử thách