错误'对象引用未设置对象实例' [英] Error 'object reference not set instance of object'
本文介绍了错误'对象引用未设置对象实例'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
I如果refOther中没有任何内容,则在调试期间会收到此错误,并且如果
语句,它将继续通过所有其他嵌套。当我调试并将鼠标悬停在refOther上时,值为'null'。我怎么能设置这个如果没有任何东西在refOther它没有命中其他嵌套的if语句。
foreach (DataRow dr in drs.Rows)
{
// Lookup reason in Reference_OtherReason table
REFERENCE_OTHERREASON refOther = (from db in dc.REFERENCE_OTHERREASONs
where db.deleted_by == -1
&& db.VALUE == dr["OtherReason"].ToString()
select db).FirstOrDefault();
if (float.Parse(dr["Contract"].ToString()) > 0)
{
hrsReg += double.Parse(dr["Contract"].ToString());
}
if (float.Parse(dr["Other"].ToString()) > 0)
{
if (dr["OtherReason"].ToString().ToLower().StartsWith("training"))
{
if (refOther.OTHERREASON_CUSTOMER == 1)
{
hrsMR += double.Parse(dr["Other"].ToString());
}
else
{
hrsReg += double.Parse(dr["Other"].ToString());
}
}
else if (dr["OtherReason"].ToString().ToLower().StartsWith("alt"))
{
if (dr["OtherReason"].ToString().ToLower() == "alt.job rainout hrs")
{
if (refOther.OTHERREASON_ALTJOBNUM == 1)
{
hrsMR += double.Parse(dr["Other"].ToString());
}
else
{
hrsReg += double.Parse(dr["Other"].ToString());
}
}
else
{
if (refOther.OTHERREASON_ALTJOBNUM == 1)
{
hrsReg += double.Parse(dr["Other"].ToString());
}
else
{
hrsMR += double.Parse(dr["Other"].ToString());
}
}
}
else if (dr["OtherReason"].ToString().ToLower().StartsWith("rework"))
{
if (dr["OtherReason"].ToString().ToLower() == "Rework Rainout Hrs")
{
if (refOther.OTHERREASON_ALTJOBNUM == 1)
{
hrsMR += double.Parse(dr["Other"].ToString());
}
else
{
hrsReg += double.Parse(dr["Other"].ToString());
}
}
else
{
if (refOther.OTHERREASON_CUSTOMER == 1)
{
hrsReg += double.Parse(dr["Other"].ToString()); // org
//hrsMR += double.Parse(dr["Other"].ToString());
}
else
{
hrsMR += double.Parse(dr["Other"].ToString()); // org
//hrsReg += double.Parse(dr["Other"].ToString());
}
}
}
else if (dr["OtherReason"].ToString().ToLower().StartsWith("mentoring"))
{
hrsReg += double.Parse(dr["Other"].ToString()); // org
}
}
if (float.Parse(dr["Rain"].ToString()) > 0)
{
hrsMR += double.Parse(dr["Rain"].ToString());
}
if (float.Parse(dr["Travel"].ToString()) > 0)
{
hrsTR += double.Parse(dr["Travel"].ToString());
}
}
推荐答案
if( refOther!= null&& ... )
如果refOther不为null,则只检查第二个条件,意味着你在此之后可以使用refOthers。但是refOther!= null必须留在第一个位置!
the second condition is just checked if refOther is not null, means you can use refOthers after that in the condition. But refOther != null has to stay on first position!
问候,Chris
这篇关于错误'对象引用未设置对象实例'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文