2012-02-10 2 views
3

내가이 개 수업을 왜 모르겠 음 아마 무언가 궁극적으로 간단합니다. 당신의 Player 생성자에서NullReferenceException이 나는

+0

pl.shots = new 목록 (); pl.shots.Add (새로운 샷 (pl.yPos)); – AJP

답변

6

, 당신이 새로운 필요 shots = new List<Shot>();

1

를 초기화 플레이어 생성자에서 샷 (또는 당신이 그것을 추가하기 전에).

shots = new List<Shot>(); 
0

나는 당신이 이제까지 접근 샷에 로직을 추가해야하는 경우에만 온통 샷의 사용을 변경하지 않고, 당신이 할 수있는 당신이 그것을 필요로하는 경우에 촬영을 초기화하고, 조금 더 아래를 좋아한다.

private List<Shot> _shots; 

public List<Shot> Shots 
{ 
    get 
    { 
     if (_shots == null) 
     { 
      _shots = new List<Shot>(); 
     } 
     return _shots; 
    } 
    set 
    { 
     _shots = value; 
    } 
} 
+0

이것은 좋은 습관이 아닙니다. 자체 내에 속성을 초기화하면 안됩니다. 잠재적 인 경로를 숨기고 다른 클래스와 함께 사용할 때 실제로 문제가 될 수 있습니다. – tsells

+0

나는'set'에도'new List ()'이 필요하다고 생각합니다. – diaho

+0

@tsells - 잠재적 인 경로를 숨기는 것에 대해 더 자세히 설명 할 수 있습니까? –

관련 문제