2012-12-05 4 views
28

리플렉션을 사용하여 초기화하는 C# 클래스의 일부 필드가 있습니다. 컴파일러는 그들을 위해 CS0649 경고 보여줍니다클래스 C의 특정 필드에 대해 CS0649 경고를 사용/사용 안 함

필드 foo' is never assigned to, and will always have its default value 널 (null) '(CS0649) (조립-CSHARP)

나는 이러한 특정 필드에 대한 경고를 해제하고 여전히 경고를하게하고 싶습니다 이 클래스의 다른 클래스 및 기타 필드에 표시됩니다. 전체 프로젝트에 대해 CS0649를 비활성화 할 수 있습니다. 더 미세한 것이 있습니까?

답변

51

당신은 특정 경고를 재 활성화 한 후 비활성화하고 #pragma warning을 사용할 수

public class MyClass 
{ 
    #pragma warning disable 0649 

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

    #pragma warning restore 0649 

    // rest of class 
} 

가 확장 된 대답을 Suppressing “is never used” and “is never assigned to” warnings in C#를 참조하십시오.

+1

앞에 오는 0이 필요하지 않습니까? – SeToY

+0

@ SeToY : 주목 해 주셔서 고맙습니다. 결정된. – Douglas

+0

@ SeToY : 사실, 아니요, 필요하지 않습니다. – 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

5 분 전에 게시되지 않은 질문에 답이 추가됩니다. – SeToY

+3

그는 아마도 첫 번째 대답을 보지 못했을 것입니다. 어쨌든 고마워 :) – iseeall

4

나는 그것도 필드 이니셜 라이저를 사용하여 억제 할 수있는 경고를 주목할 필요가 믿습니다. 이렇게하면 코드가 훨씬 더 복잡해집니다.

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

    // rest of class 
}