Tôi có một lớp kế thừa từ một lớp cơ sở và thực hiện những điều sau đây ...Làm thế nào để ngăn chặn biên dịch cảnh báo cho chức năng cụ thể trong VS2005 (VB.Net)
Public Function CompareTo(ByVal obj As Object) As Integer Implements System.IComparable.CompareTo
Bây giờ lớp cơ sở nó được thừa hưởng từ cũng triển khai System.IComparable.CompareTo này vì vậy tôi nhận được cảnh báo trình biên dịch sau:
Cảnh báo: 'System.IComparable.CompareTo' đã được lớp cơ sở thực hiện. Thực hiện lại hàm giả định.
Tôi ổn với câu hỏi của mình là làm cách nào để ngăn chặn cảnh báo này chỉ cho chức năng này (tức là không phải tất cả các cảnh báo đó).
Làm rõ:
- Đây là một link đến lỗi trên MSDN.
- Tôi đã thử cả Bóng và Ghi đè và không loại bỏ cảnh báo.
- Cảnh báo không có trên chính phương thức đó (trừ khi Bóng tối hoặc Ghi đè bị bỏ qua), nhưng đúng hơn là trên "Triển khai System.IComparable.CompareTo" cụ thể.
- Tôi không tìm cách chặn tất cả các cảnh báo thuộc loại này (nếu chúng bị cắt), chỉ là cái này.
Giải pháp:
Tôi đã hy vọng sử dụng thuộc tính System.Diagnostics.CodeAnalysis.SuppressMessage hoặc một cái gì đó giống như #pragma C# 's, nhưng hình như không có cách nào để ngăn chặn cảnh báo cho một dòng đơn. Tuy nhiên, có một cách để tắt thông báo này cho dự án này mà không cần tắt cảnh báo tất cả.
Tôi đã chỉnh sửa thủ công tệp .vbproj và bao gồm 42015 trong nút cho bộ sưu tập Debug và Release. Không lý tưởng nhưng tốt hơn là luôn thấy cảnh báo trong IDE.
Nếu ai đó có giải pháp tốt hơn, vui lòng thêm giải pháp đó và tôi sẵn sàng thử đánh dấu câu trả lời.
Đây là câu trả lời đúng duy nhất. Văn bản của cảnh báo ngụ ý điều này - đó là những gì "giả định" có nghĩa là, các Overrides một mình sẽ đảm bảo rằng phương thức đúng được gọi nếu cá thể là lớp kế thừa - nhưng nó không rõ ràng. – McKenzieG1