我有下面的方法,我需要檢查參數是否爲空或空。如何爲多個參數檢查空字符串或空字符串? - C#
public DB Where(string field, string operat, string value, string andOr, string field2, string operat2, string value2)
{
_Where = " WHERE " + field + " " + operat + " @" + field + "1 " + andOr + " " + field2 + " " + operat2 + " @" + field2 + "2 ";
_Params.Add(field + "1", value);
_Params.Add(field2 + "2", value2);
return this;
}
我已經找到了string.IsNullOrWhiteSpace方法然而這將需要這麼多代碼:
if (string.IsNullOrWhiteSpace(field))
throw new ArgumentException("field Cannot be null or be empty");
if (string.IsNullOrWhiteSpace(operat))
throw new ArgumentException("operat Cannot be null or be empty");
if (string.IsNullOrWhiteSpace(value))
throw new ArgumentException("value Cannot be null or be empty");
if (string.IsNullOrWhiteSpace(andOr))
throw new ArgumentException("andOr Cannot be null or be empty");
if (string.IsNullOrWhiteSpace(field2))
throw new ArgumentException("field2 Cannot be null or be empty");
if (string.IsNullOrWhiteSpace(operat2))
throw new ArgumentException("operat2 Cannot be null or be empty");
if (string.IsNullOrWhiteSpace(value2))
throw new ArgumentException("value2 Cannot be null or be empty");
有縮短這個的方法嗎?
此外,我已經嘗試爲此任務創建一個自定義方法,但是它會在自定義方法而不是Where()方法中引發異常,從而使調試變得棘手。
您可以創建一個靜態梅託德:'ValidateParameterNotEmpty(字符串名稱,字符串值)'。您將減少行數到1/3 – xanatos
您需要做的預防SQL注入的驗證將會花費更多的工作量,所以我會優先考慮。 – Crowcoder
如果該字段爲空或空,那麼在以您的方式拋出'ArgumentException'時不會出現任何內容。你的意思是使用['nameof'](https://msdn.microsoft.com/en-us/library/dn986596.aspx)? –