正在检查C#中的空对象数组
本文关键字:对象 数组 检查 | 更新日期: 2023-09-27 18:24:58
我的应用程序中有以下代码:
SqlParameter[] sqlCmdParameters=new SqlParameter[0];
稍后,我将数组传递给以下方法:
void CallDB( SqlParameter[] sqlCmdParameters)
{
if (sqlCmdParameters == null && sqlCmdParameters.Length>=0 )
{
return;
}
Console.Writeline(sqlCmdParameters[0].value);
}
上面的代码遇到一个"Object reference not found exception",因为数组为空。我可以在循环中执行元素式的null检查,但我认为这不是一个好方法。在C#中检查空数组的最佳做法是什么?此外,当根本没有元素时,为什么空数组的长度是1?
您应该更改if语句
if (sqlCmdParameters == null || sqlCmdParameters.Length == 0 )
{
return;
}
在您的情况下,您永远不能达到返回值,因为参数不能为null并且它们的Length=0。
这里有SqlParameters列表。
List<SqlParameter> sqlCmdParameters= new List<SqlParameter>();
SqlParameter param = new SqlParameter();
param.Value = "test";
sqlCmdParameters.Add(param);
如果您选择使用List,则应在If语句中进行检查
if (sqlCmdParameters == null || sqlCmdParameters.Count == 0 )
{
return;
}
您的代码似乎不正确。
应该是这样的。
SqlParameter[] sqlCmdParameters=new SqlParameter[0];
void CallDB( SqlParameter[] sqlCmdParameters)
{
if (sqlCmdParameters == null || sqlCmdParameters.Length <= 0 )
{
return;
}
Console.Writeline(sqlCmdParameters[0].value);
}