C# 布尔条件检查
我有一个查询处于检查状态C# 布尔条件检查,c#,C#,我有一个查询处于检查状态 var hasListHeader = false; using(SqlDataReader reader = sql.ExecuteQueryReturnDR(query, sqlParams)) //this will return SqlDataReader { if(hasListHeader = reader.HasRows) { } } 我能检查一下情况是否像那样吗?首先从reader.HasRows分配,然后检查条件 我没有这样做,
var hasListHeader = false;
using(SqlDataReader reader = sql.ExecuteQueryReturnDR(query, sqlParams)) //this will return SqlDataReader
{
if(hasListHeader = reader.HasRows)
{
}
}
reader.HasRows
分配,然后检查条件hasListHeader = reader.HasRows;
if(hasListHeader)
{
}
你应该使用
hasListHeader = reader.HasRows;
if(hasListHeader)
{
}
仅当您打算使用变量hasListHeader
供以后使用时,可以使用相同的方法或代码库中的其他地方
如果在If
语句之后不需要hasListHeader
,那么我会删除它并使用
if(reader.HasRows)
{
}
你应该使用
hasListHeader = reader.HasRows;
if(hasListHeader)
{
}
仅当您打算使用变量hasListHeader
供以后使用时,可以使用相同的方法或代码库中的其他地方
如果在If
语句之后不需要hasListHeader
,那么我会删除它并使用
if(reader.HasRows)
{
}
是的,您可以像这样检查布尔值,因为赋值是一个具有右操作数值的表达式,所以
hasListHeader = reader.HasRows
评估reader.HasRows
的值,并将该值作为副作用分配给hasListHeader
但是,这样做并不好,如果认为语句更清晰,则将赋值移到
语句上方。是的,您可以像这样检查布尔值,因为赋值是一个具有右侧操作数值的表达式,所以
hasListHeader = reader.HasRows
评估reader.HasRows
的值,并将该值作为副作用分配给hasListHeader
然而,这样做并不被认为是一种好的方式,如果认为语句更清晰,那么将赋值移到上方。+1在这个解决方案中,“意图”是清晰而简单的,很好+1在这个解决方案中,“意图”是明确而简单的,很好!我真的不明白你的问题。但是如果我需要hasListHeader
的值在using
块之外,我会使用第一个符号。如果你不需要hasListHeader
的值在using
块之外,那么我会使用reader.HasRows
作为If
的条件,但我认为这里不是这样。我真的不理解你的问题。但是如果我需要hasListHeader
的值在using
块之外,我会使用第一个符号。如果在using
块之外不需要hasListHeader
的值,那么我会使用reader.HasRows
作为If
的条件,但我认为这里不是这样。