C# 检查C中的空对象数组#

C# 检查C中的空对象数组#,c#,C#,我的应用程序中有以下代码: SqlParameter[] sqlCmdParameters=new SqlParameter[0]; 稍后,我将数组传递给一个方法,如下所示: void CallDB( SqlParameter[] sqlCmdParameters) { if (sqlCmdParameters == null && sqlCmdParameters.Length>=0 ) { return;

我的应用程序中有以下代码:

SqlParameter[] sqlCmdParameters=new SqlParameter[0];
稍后,我将数组传递给一个方法,如下所示:

 void CallDB( SqlParameter[] sqlCmdParameters)
 {

       if (sqlCmdParameters == null && sqlCmdParameters.Length>=0 )
       {
           return;
       }   
       Console.Writeline(sqlCmdParameters[0].value);        

  } 
由于数组为空,上述代码遇到“对象引用未找到异常”。 我可以在循环中执行元素级的空检查,但我认为这不是一个好方法。
在C#中检查空数组的最佳实践是什么?另外,当根本没有元素时,为什么空数组长度为1?

您应该更改if语句

 if (sqlCmdParameters == null || sqlCmdParameters.Length == 0 )
 {
      return;
 }   
在您的情况下,您永远不能点击返回键,因为参数不能为null且其长度为0

这里是SqlParameters的列表

List<SqlParameter> sqlCmdParameters= new List<SqlParameter>();
SqlParameter param = new SqlParameter();
param.Value = "test";
sqlCmdParameters.Add(param);

您的代码似乎不正确

应该是这样的

SqlParameter[] sqlCmdParameters=new SqlParameter[0];    

 void CallDB( SqlParameter[] sqlCmdParameters)
 {

       if (sqlCmdParameters == null || sqlCmdParameters.Length <= 0 )
       {
           return;
       }   
       Console.Writeline(sqlCmdParameters[0].value);        

  } 
SqlParameter[]sqlCmdParameters=newsqlparameter[0];
void CallDB(SqlParameter[]sqlCmdParameters)
{

如果(sqlCmdParameters==null | | sqlCmdParameters.Length,请检查我的答案并告诉我错误是否消失了。如果您只是通过语句声明数组
SqlParameter[] sqlCmdParameters=new SqlParameter[0];    

 void CallDB( SqlParameter[] sqlCmdParameters)
 {

       if (sqlCmdParameters == null || sqlCmdParameters.Length <= 0 )
       {
           return;
       }   
       Console.Writeline(sqlCmdParameters[0].value);        

  }