类c#的新实例

时间:2014-06-20 17:21:42

标签: c#

这可能已被多次询问,我一直在寻找,但由于某种原因,这对我来说没有意义。所以我似乎创建了一个新实例,但Visual studio告诉我Object reference not set to an instance of an object.

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());
       }
   }
}

我认为当我使用新的Service()时,我基本上每次移动到Dictionary中的下一个元素时都会创建一个新的Service实例? 服务是一个类

3 个答案:

答案 0 :(得分:2)

您忘记实例化您的列表,您需要:

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

回答您的初步问题:是的,为正在迭代的集合中的每个项目创建一个新实例。

答案 1 :(得分:1)

您只是声明了初始化它所需的词典

这样做

private Dictionary<string, Service> serviceList = new  Dictionary<string, Service>();

答案 2 :(得分:0)

是。你正是这样做的。当您调用new Service ()时,您将创建该类的新实例,除非Service是单例类