Sự khác biệt, nếu có, giữa một hàm hủy và một phương thức Finalize trong một lớp là gì?
Gần đây tôi đã phát hiện ra rằng Visual Studio 2008 coi một hàm hủy đồng nghĩa với một phương thức Finalize, có nghĩa là Visual Studio sẽ không cho phép bạn xác định đồng thời cả hai phương thức trong một lớp.
Ví dụ: đoạn mã sau:
class TestFinalize
{
~TestFinalize()
{
Finalize();
}
public bool Finalize()
{
return true;
}
}
Đưa ra lỗi sau khi gọi đến Kết thúc trong trình hủy:
Lời gọi không rõ ràng giữa các phương thức hoặc thuộc tính sau: 'TestFinalize. ~ TestFinalize ()' và 'TestFinalize.Finalize ()'
Và nếu lệnh gọi đến Finalize được nhận xét ra ngoài, nó sẽ xuất hiện lỗi sau:
Nhập 'ManagementCon Khái niệm.Service.TestFinalize' đã xác định một thành viên được gọi là 'Finalize' với các loại tham số giống nhau