Giải phóng tài nguyên với IDisposable và using trong C#
Trong bài học này, bạn sẽ dùng khai báo using để đảm bảo tài nguyên luôn được giải phóng đúng lúc, kể cả khi có lỗi xảy ra.
Giới thiệu
Bộ nhớ trong .NET được bộ thu gom rác (garbage collector) tự động thu hồi, nhưng các tài nguyên như file, kết nối mạng hay kết nối cơ sở dữ liệu nên được giải phóng ngay khi dùng xong. Những đối tượng này cài đặt interface IDisposable với phương thức Dispose để giải phóng tài nguyên.
Khai báo using var writer đảm bảo phương thức Dispose của writer được gọi tự động khi chương trình ra khỏi phạm vi chứa nó, kể cả khi có ngoại lệ xảy ra giữa chừng. Nhờ vậy bạn không cần tự viết khối try/finally để dọn dẹp tài nguyên.
Ví dụ C# chạy được
using System;
using System.IO;
class Program
{
static void Main()
{
using var writer = new StringWriter();
writer.Write("resource-safe output");
Console.WriteLine(writer.ToString());
}
}
resource-safe outputLuyệ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