2014-06-20 5 views
0

이것은 여러 번 요청되었을 수 있으며 주위를 둘러 보았습니다. 그러나 웬일인지, 이것은 나에게 의미가 없습니다. 그래서 새 인스턴스를 만들 것처럼 보이지만 비주얼 스튜디오 Object reference not set to an instance of an object.클래스의 새 인스턴스 C#

public class Test{ 
    private Dictionary<string, Service> serviceList; 
    private void GetList(string ID){ 
     foreach(var service in Service.Load()){ 
      servicelist.Add(service.ID, new Service()); 
     } 
    } 
} 

나는 새로운 서비스를 (사용할 때 내 생각은), 나는 기본적으로 내가 이동 매번 서비스의 새로운 인스턴스를 생성 할 것을 알려줍니다 사전의 다음 요소? 서비스은 클래스입니다

+1

예. 읽어 보시기 바랍니다 : http://msdn.microsoft.com/en-us/library/fa0ab757.aspx, http://msdn.microsoft.com/en-us/library/ttw7t8t6.aspx. – BartoszKP

+0

새 서비스는 service.Load의 각 서비스에 대해 만들어지고 * 사전에 추가됩니다 *. "다음 요소로 이동"이 무슨 뜻인지 잘 모르겠습니다. 그래서, 정확히 당신의 질문은 무엇입니까? 새로운 인스턴스가 생성됩니다. – BradleyDotNET

+0

그래, 그 전에 읽었지만 왜 내가 위에 올린 오류가 있는지 모르겠다. 나는 그것을 포함하는 것을 잊었습니다 – Test

답변

2

을 그것을

를 초기화해야 싱글 톤 클래스를 경우를 제외하고 new Service() 당신은 클래스의 새 인스턴스를 만들 목록을 인스턴스화하려면 다음이 필요합니다.

private Dictionary<string, Service> serviceList = new Dictionary<string, Service>(); 
    private void GetList(string ID){ 
    .... 

처음 질문에 답하려면 : 예, ollection 반복되고있다.

0

예. 바로 그거야. 당신이 호출 할 때 서비스는 그냥 사전을 선언하는

+0

일반적으로 싱글 톤에서 생성자를 호출 할 수 없습니다 , 그래서 그 사건은 아마도 작동하지 않을 것이다/어쨌든 컴파일! – BradleyDotNET

1

당신이 당신은 잊었이

private Dictionary<string, Service> serviceList = new Dictionary<string, Service>(); 
관련 문제