2012-12-05 43 views
28

Tôi có một số trường trong lớp C# mà tôi khởi tạo bằng cách sử dụng sự phản chiếu. Trình biên dịch cho thấy CS0649 cảnh báo cho họ:Tắt/chặn cảnh báo CS0649 trong C# cho một trường cụ thể của lớp

Dòng foo' is never assigned to, and will always have its default value null'(CS0649) (hội-CSharp)

Tôi muốn vô hiệu hóa các cảnh báo cho chỉ những lĩnh vực cụ thể và vẫn để cho các cảnh báo được hiển thị cho các lớp khác và các trường khác của lớp này. Có thể tắt CS0649 cho toàn bộ dự án, có điều gì chi tiết hơn không?

Trả lời

51

Bạn có thể sử dụng #pragma warning để vô hiệu hóa và sau đó bật lại cảnh báo đặc biệt:

public class MyClass 
{ 
    #pragma warning disable 0649 

    // field declarations for which to disable warning 
    private object foo; 

    #pragma warning restore 0649 

    // rest of class 
} 

Tham khảo Suppressing “is never used” and “is never assigned to” warnings in C# cho một câu trả lời mở rộng.

+1

Không phải là số 0 hàng đầu cần thiết? – SeToY

+0

@SeToY: Cảm ơn vì đã lưu ý điều đó; đã sửa. – Douglas

+0

@SeToY: Trên thực tế, không, chúng không bắt buộc. – Douglas

6
//disable warning here 
#pragma warning disable 0649 

//foo field declaration 

//restore warning to previous state after 
#pragma warning restore 0649 
3
public class YouClass 
{ 
#pragma warning disable 649 
    string foo; 
#pragma warning restore 649 
} 
+0

Câu trả lời của bạn thêm vào giải pháp câu hỏi chưa được đăng 5 phút trước là gì? – SeToY

+3

Có lẽ anh ta không thấy câu trả lời đầu tiên. Dù sao cũng cảm ơn bạn:) – iseeall

4

Tôi tin rằng đó là đáng chú ý cảnh báo cũng có thể được dập tắt bằng cách sử dụng một initializer lĩnh vực. Điều này cắt mã của bạn ít hơn nhiều.

public class MyClass 
{ 
    // field declarations for which to disable warning 
    private object foo = null; 

    // rest of class 
} 
Các vấn đề liên quan