List <t> .Add对象给出UgenityAdministrationConsole.exe中发生的'System.NullReferenceException'类型的未处理异常</t>

时间:2013-02-23 21:27:42

标签: c# exception object initialization nullreferenceexception

我收到类型

的未处理异常
  

发生'System.NullReferenceException'   UgenityAdministrationConsole.exe

     

附加信息:对象引用未设置为的实例   对象

这发生在我的类构造函数中。

这是我的代码:

    public static object dummyObject = new object(); // create a dummy object to use for initializing various things

    public class EntityValuesClass
    {
        public List<EntityValue> EntityValues { get; set; }

        public EntityValuesClass(EntityType _entType)
        {
            Type t;
            PropertyInfo[] propInfoArray;
            EntityValue entValue = new EntityValue();

            t = entityTypeToType[_entType];
            propInfoArray = t.GetProperties();

            foreach (PropertyInfo propItem in propInfoArray)
            {
                entValue.FieldName = propItem.Name;
                entValue.FieldValue = dummyObject;
                EntityValues.Add(entValue);  <------ this is where the error is happening
            }
        }
    }


    public class EntityValue
    {
        public string FieldName { get; set; }
        public object FieldValue { get; set; }
    }

3 个答案:

答案 0 :(得分:2)

EntityValues为空。你从来没有初始化它。

答案 1 :(得分:2)

您必须先初始化EntityValue属性:

EntityValues = new List<EntityValue>();

另一方面,根据CA1002: Do not expose generic lists,您应该考虑将班级更改为:

private List<EntityValue> _entityValues = new List<EntityValue>();
public List<EntityValue> EntityValues
{
    get { return _entityValues; }
}

答案 2 :(得分:2)

EntityValuesnull,因为您没有为其分配任何内容。

您可以将EntityValues = new List<EntityValue>();添加到构造函数的开头以初始化它。