Có chú thích trong .NET không cho phép các phương thức hoặc lớp không được sử dụng để người dùng của họ và người gọi của họ được nhận dạng bởi trình biên dịch (cf @Deprecated in Java)tương đương .NET của @Deprecated trong java là gì?
12
A
Trả lời
43
Thuộc tính [Obsolete]
.
Bạn có thể thêm một chút về những gì mọi người nên sử dụng, ví dụ:
[Obsolete("Use NewMethod() instead")]
public void OldMethod()
{
}
Nếu bạn muốn tạo ra một lỗi biên dịch khi người ta sử dụng phương pháp của bạn:
[Obsolete("Use NewMethod() instead", true)]
public void OldMethod()
{
}
Đây là một ví dụ cho một phương pháp, nhưng nó có thể được sử dụng trên hầu như bất kỳ mục tiêu thuộc tính nào. Xem here để xem tài liệu đầy đủ.
Kể từ khi câu hỏi đã được chỉnh sửa một chút, tôi sẽ thêm cú pháp VB.NET là tốt, để trang trải các ngôn ngữ .NET phổ biến nhất:
<Obsolete("Use NewMethod() instead")> _
Public Sub OldMethod()
End Sub
9
[Obsolete] - xem here cho tài liệu trên đó. Việc thêm phương thức này vào một phương thức hoặc lớp sẽ đưa ra cảnh báo trình biên dịch nếu có ai đó cố gắng sử dụng nó, với thông điệp tùy chỉnh mà bạn cung cấp cho thuộc tính nếu cần
+1 cho lỗi biên dịch –
Tôi cho rằng đó là cảnh báo trình biên dịch, nếu bạn muốn một lỗi chỉ xóa chức năng. – thelem
Không, đó là lỗi trình biên dịch. Nó không giống như xóa phương thức, bởi vì phần mềm được biên dịch dựa vào phiên bản cũ của assembly đang được hỏi sẽ tiếp tục làm việc với phiên bản mới của assembly. – Thorarin