C# 创建新项目并将其添加到新词典 公共类员工 { 公共词典; // .... } MyClass cls; if(employeeObject.MyDictionary!=null&&employeeObject.MyDictionary.ContainsKey(dicKey) { // .... } 其他的 { MyClass cls=新的MyClass(); myclass.Name=“John”; //…在其上设置一些其他属性 employeeObject.MyDictionary.Add(dicKey,cls) }

C# 创建新项目并将其添加到新词典 公共类员工 { 公共词典; // .... } MyClass cls; if(employeeObject.MyDictionary!=null&&employeeObject.MyDictionary.ContainsKey(dicKey) { // .... } 其他的 { MyClass cls=新的MyClass(); myclass.Name=“John”; //…在其上设置一些其他属性 employeeObject.MyDictionary.Add(dicKey,cls) },c#,C#,因此,首先我检查我的对象是否为空,然后我创建它,但即使我在else部分创建它,然后我想在最后一行添加它,它仍然显示employeeObject。MyDictionary为null,因此它会崩溃,因为它是null.add 那么我应该怎么做呢?在使用字典之前,您应该初始化字典: public class Employee { public Dictionary<key, MyClass> MyDictionary; // .... } MyClass cls; if(e

因此,首先我检查我的对象是否为空,然后我创建它,但即使我在
else
部分创建它,然后我想在最后一行添加它,它仍然显示
employeeObject。MyDictionary
null
,因此它会崩溃,因为它是
null.add


那么我应该怎么做呢?

在使用字典之前,您应该初始化字典:

public class Employee
{
   public Dictionary<key, MyClass>  MyDictionary;
   // ....
}

MyClass cls;

if(employeeObject.MyDictionary != null && employeeObject.MyDictionary.ContainsKey(dicKey)
{
  // .... 
}
else
{
  MyClass cls = new MyClass();
  myclass.Name = "John";
  //...set some other properties on it

  employeeObject.MyDictionary.Add(dicKey, cls)
}
公共类员工
{
公共字典MyDictionary=新字典();
}
否则,类字段将具有默认值,对于引用类型,默认值为
null
。请参阅:

字段的初始值,无论是静态字段还是静态字段 实例字段,是该字段的默认值(第5.2节) 类型


您应该在使用字典之前初始化它:

public class Employee
{
   public Dictionary<key, MyClass>  MyDictionary;
   // ....
}

MyClass cls;

if(employeeObject.MyDictionary != null && employeeObject.MyDictionary.ContainsKey(dicKey)
{
  // .... 
}
else
{
  MyClass cls = new MyClass();
  myclass.Name = "John";
  //...set some other properties on it

  employeeObject.MyDictionary.Add(dicKey, cls)
}
公共类员工
{
公共字典MyDictionary=新字典();
}
否则,类字段将具有默认值,对于引用类型,默认值为
null
。请参阅:

字段的初始值,无论是静态字段还是静态字段 实例字段,是该字段的默认值(第5.2节) 类型


您应该在使用字典之前初始化它:

public class Employee
{
   public Dictionary<key, MyClass>  MyDictionary;
   // ....
}

MyClass cls;

if(employeeObject.MyDictionary != null && employeeObject.MyDictionary.ContainsKey(dicKey)
{
  // .... 
}
else
{
  MyClass cls = new MyClass();
  myclass.Name = "John";
  //...set some other properties on it

  employeeObject.MyDictionary.Add(dicKey, cls)
}
公共类员工
{
公共字典MyDictionary=新字典();
}
否则,类字段将具有默认值,对于引用类型,默认值为
null
。请参阅:

字段的初始值,无论是静态字段还是静态字段 实例字段,是该字段的默认值(第5.2节) 类型


您应该在使用字典之前初始化它:

public class Employee
{
   public Dictionary<key, MyClass>  MyDictionary;
   // ....
}

MyClass cls;

if(employeeObject.MyDictionary != null && employeeObject.MyDictionary.ContainsKey(dicKey)
{
  // .... 
}
else
{
  MyClass cls = new MyClass();
  myclass.Name = "John";
  //...set some other properties on it

  employeeObject.MyDictionary.Add(dicKey, cls)
}
公共类员工
{
公共字典MyDictionary=新字典();
}
否则,类字段将具有默认值,对于引用类型,默认值为
null
。请参阅:

字段的初始值,无论是静态字段还是静态字段 实例字段,是该字段的默认值(第5.2节) 类型


您刚刚声明了
词典,但尚未初始化它。您可以在声明时或在构造函数中进行初始化

public class Employee
{
   public Dictionary<key, MyClass> MyDictionary = new Dictionary<key, MyClass>();

}

您刚刚声明了
词典,但尚未初始化它。您可以在声明时或在构造函数中进行初始化

public class Employee
{
   public Dictionary<key, MyClass> MyDictionary = new Dictionary<key, MyClass>();

}

您刚刚声明了
词典,但尚未初始化它。您可以在声明时或在构造函数中进行初始化

public class Employee
{
   public Dictionary<key, MyClass> MyDictionary = new Dictionary<key, MyClass>();

}

您刚刚声明了
词典,但尚未初始化它。您可以在声明时或在构造函数中进行初始化

public class Employee
{
   public Dictionary<key, MyClass> MyDictionary = new Dictionary<key, MyClass>();

}


你需要初始化你在哪里创建你的
employeeObject.MyDictionary
?你能显示代码吗?我看不出你实际上在哪里创建字典。@Sajeetharan请更具体一点并举个例子。你需要初始化你在哪里创建你的
employeeObject.MyDictionary
?你能显示一下吗请输入t代码?我看不出您实际上在哪里创建词典。@Sajeetharan请更具体一点,并举个例子。您需要初始化您在哪里创建
employeeObject。MyDictionary
?请显示代码,好吗?我看不到您实际上在哪里创建词典。@Sajeetharan请更具体一点ic和一个例子。你需要初始化你在哪里创建你的
employeeObject。MyDictionary
?你能展示一下代码吗?我看不出你实际上在哪里创建字典。@Sajeetharan请更具体一点,举个例子。根据问题中的描述,OP已经意识到了这一点,并希望出于某种原因,我懒散地创建了字典。@O.R.Mapper我后来添加了“null”检查,因为我看到它在null上崩溃,但仍然没有修复它,所以我将问题发布到了网站上。因此我添加了null检查:)–@O.R.Mapper,OP没有在其他部分实例化字典,他/她正在创建一个
MyClass
的对象,但是字典仍然是
null
@Habib:我看到了。这就是为什么在我看来,你的答案现在是更好的答案,因为它实际上解决了问题(字典实际上没有初始化),而不是解释OP已经知道的东西->+1。根据问题中的描述,OP已经意识到了这一点,出于某种原因,我想懒洋洋地创建字典。@O.R.Mapper我后来添加了“null”检查,因为我看到它在null上崩溃,但仍然没有修复它,所以我将问题发布到了网站上。这就是我添加空检查的方式:)–@O.R.Mapper,OP没有在else部分实例化字典,他/她正在创建
MyClass
的对象,但是字典仍然是
null
@Habib:我看到了。这就是为什么在我看来,你的答案现在是更好的答案,因为它实际上解决了问题(字典实际上没有初始化),而不是解释OP已经知道的东西->+1。根据问题中的描述,OP已经意识到了这一点,出于某种原因,我想懒洋洋地创建字典。@O.R.Mapper我后来添加了“null”检查,因为我看到它在null上崩溃,但仍然没有修复它,所以我将问题发布到了网站上。这就是我添加空检查的方式:)–@O.R.Mapper,OP没有在else部分实例化字典,他/她正在创建
MyClass
的对象,但是字典仍然是
null
@Habib:我看到了。这就是为什么现在你的答案更好的原因