2014-01-28 1 views
0

나는 뭔가를 디버깅 중이며 뭔가가 설정 될 때를 알아야합니다. x = 5에서와 같이 명시적인 세트가없는 것 같습니다. 그러면 어쨌든 설정되지 않았는지 확인해야할까요? 특히 기본 설정기를 중단하여? 문제는 충분히 명확하지 않으면기본 C# getter 또는 setter에서 어떻게 깨지십니까?

는 :

using System.Diagnostics; 

Debugger.Break(); 

당신은 할 수 있습니다 :

감사

+0

속성 줄을 마우스 오른쪽 버튼으로 클릭하고 거기에 중단 점을 설정해 보았습니까? – Tim

+0

예, 맞지 않습니다. 그러나 단순히 설정되지 않기 때문일 수 있습니다. 물론 그 줄에 중단 점을 설정하면 효과가 있다는 것을 알지 않는 한. – gordlonious

+2

이 [스레드] (http://stackoverflow.com/questions/4408110/debugging-automatic-properties) – Andrei

답변

4

public FooClass 
{ 

    FooClass() { } 

    public int x { get; set; } //How do I break in the setting of this property? 

} 당신은 강제로 디버거가 중단 될 수 있습니다 그래도 명시적인 배경 필드를 사용하여 자동 속성을 확장하십시오.

public class FooClass { 
    private int _x; 

    public int X { 
     get { 
      return _x; 
     } 
     set { 
      _x = value; 
      Debugger.Break(); 
     } 
    } 
} 

.. 또는 위와 같이 속성을 확장 한 다음 직접 중단 점을 지정하십시오.

3

getter 또는 setter 내에 코드가있는 경우 해당 코드에서 휴식을 취할 수 있으므로 해당 속성에 대한 비공개 멤버를 만들 수 있습니다.

private int _x; 
public int X { 
    get { 
     return _x; 
    } 
    set { 
     _x = value; 
    } 
} 

이렇게하면 return _x 및 _x = value 행에 중단을 넣을 수 있습니다.

+0

에서 지침을 찾을 수 있습니다. 왜 내가 그걸 생각하지 않았는지 모르겠다! – gordlonious