#region 根据书名,作者或出版社查询 if (!String.IsNullOrEmpty(bookType)) { if (!String.IsNullOrEmpty(keyWord)) { switch (bookType) { case "书名":
if (!String.IsNullOrEmpty(StyleBookClassId) && String.IsNullOrEmpty(keyWord)) sb.Append(" AND classBook.Book_Name like '" + keyWord.Replace("'", "''") + "%'"); else sb.Append(" AND book.Book_Name LIKE '" + keyWord.Replace("'", "''") + "%'"); break; case "作者": if (!String.IsNullOrEmpty(StyleBookClassId) && String.IsNullOrEmpty(keyWord)) sb.Append(" AND classBook.Book_Author LIKE '%" + keyWord.Replace("'", "''") + "%'"); else sb.Append(" AND book.Book_Author LIKE '%" + keyWord.Replace("'", "''") + "%'"); break; case "出版社": if (!String.IsNullOrEmpty(StyleBookClassId) && String.IsNullOrEmpty(keyWord)) sb.Append(" AND classBook.Book_Concern LIKE '" + keyWord.Replace("'", "''") + "%'"); else sb.Append(" AND book.Book_Concern LIKE '" + keyWord.Replace("'", "''") + "%'"); break;
} } }
#endregion
如果存在很多if else的话,怎样去写会更加好
你的业务逻辑如果需要这样子,那么建议你还是保持这种写法。如果你想让它好看点儿,那么你可以把语法写的简洁一点儿,如果你为了看起来更清晰,那么建议你每一个条件弄一个小的函数,看起来更加容易理解。总之,你得跟着业务逻辑走。
好的,谢谢!
若验证的逻辑是不能改的,那就只有写法上的改变了,把if else 用三元表达示处理,代码结构上更好看一点,量也少那么点,
用三元表达式的话,可读性不高吧?
#region 根据书名,作者或出版社查询
if (!String.IsNullOrEmpty(bookType) && !String.IsNullOrEmpty(keyWord)) {
string column = "Book_Name";
if (bookType == "作者")
column = "Book_Author";
else if (bookType == "出版社")
column = "Book_Concern";
if (!String.IsNullOrEmpty(StyleBookClassId))
sb.Append(" AND classBook." + column + " like '" + keyWord.Replace("'", "''") + "%'"); else
sb.Append(" AND book." + column + " LIKE '" + keyWord.Replace("'", "''") + "%'");
} #endregion
谢谢你的回答
多写几个函数就搞定了,可在主函数里使用条件,也可以在子函数里判断