2010-07-30 10 views
0
private void ExecuteCommand(Expression<Func<bool>> command) 
{ 
    bool success = command.Compile().Invoke(); 
} 

private void Test() 
{ 
    ExecuteCommand(() => _gc.ChargeCancellation("")); 
} 

이 코드를 사용하면 NullReferenceException이 발생합니다.일반 람다 식을 호출하는 방법은 무엇입니까?

+0

어디서 NullReferenceExecption을 얻었습니까? _gc 란 무엇입니까? – tster

+0

게시하지 않은 코드에서'_gc'이 초기화 되었습니까? – unholysampler

+0

_gc가 null이 아닙니다. – Rookian

답변

2

는 스택 트레이스를 살펴 또는이 줄에 중단 점을 추가

ExecuteCommand(() => _gc.ChargeCancellation("")); 

은 당신이 정말로 일반적인 의견 넘어 당신을 돕는이 지역 사회에서 누구의 기회가 없습니다 게시 한 정보를 감안할 때.

3

경우에 따라 _gc이 null입니까? 아니면 ChargeCancellation 자체가 예외를 던지고 있습니까? 그렇지 않으면 잘 작동합니다.

1

_gc을 초기화하는 코드가 표시되지 않았으므로 NullReferenceException이 발생한 곳을 추측 할 수 있습니다.

_gc.ChargeCancellation( 안에있는 그 중 하나가 Exception을 던지고 있습니다.

예외 전체 텍스트가 포함되어있어 예외가 던져진 곳을 정확하게 알면 도움이 될 수 있습니다.

관련 문제