System.NullReferenceException: ... in C#
本文关键字:in NullReferenceException System | 更新日期: 2023-09-27 18:36:07
这是代码:
foreach (var property in this.allProperties)
{
var propertyItself = element.GetType().GetProperty(property.GetType().Name);
if (propertyItself.PropertyType != typeof(Int32)) // Here I get System.NullReferenceException: Object reference not set to an instance of an object
{ continue; }
if ((int)propertyItself.GetValue(element, null) == 0)
{ return false; }
}
我想不通。如果有人可以或了解正在发生的事情,请帮助我们!提前谢谢!!
propertyItself
变量为空。
这意味着此调用在某种程度上是不正确的:
element.GetType().GetProperty(property.GetType().Name);
我只是猜测,但我敢打赌,如果这是一个选项,这段代码应该property.GetType().Name
property.ToString()
或property.Name
。
您传入的是property
类型的名称,而不是其Name
。
如果没有任何调试器信息,就无法给出问题的具体答案。
尝试推杆
if(propertyIteself!=null && propertyIteslef.PropertyType!=null && propertyItself.PropertyType != typeof(Int32))
{ continue; }
这将空检查可能在该行上爆炸的两个项目。
或者试试这个
foreach (var property in this.allProperties)
{
var propertyItself = element.GetType().GetProperty(property.GetType().Name);
if(propertyItself!=null && propertyItself.PropertyType!=null)
{
if (propertyItself.PropertyType != typeof(Int32))
{ continue; }
if ((int)propertyItself.GetValue(element, null) == 0)
{ return false; }
}
}