列表<;T>;.添加对象会产生类型为';System.NullReferenceException'

本文关键字:类型 System NullReferenceException 对象 lt gt 添加 列表 | 更新日期: 2023-09-27 18:01:01

我得到一个类型的未处理异常

中出现"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; }
    }

列表<;T>;.添加对象会产生类型为';System.NullReferenceException'

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

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

EntityValues为空。您从未初始化过它。

您必须首先初始化EntityValue属性:

EntityValues = new List<EntityValue>();

另一方面,根据CA1002:不要公开通用列表,你应该考虑将你的类更改为:

private List<EntityValue> _entityValues = new List<EntityValue>();
public List<EntityValue> EntityValues
{
    get { return _entityValues; }
}
相关文章: