相当于以下代码片段的速记是什么?
if (strValue == ""){
throw new Exception("Mandatory 'strValue' parameter empty");
}
答案 0 :(得分:9)
它可能只是你可以得到它,除非删除空格和大括号(并在此过程中牺牲可读性)。
至于正确性......这可能会更好:
.NET 4.0:
if (string.IsNullOrWhiteSpace(strValue)){
throw new ArgumentException("Mandatory 'strValue' parameter empty");
}
.NET< 4.0:
if (string.IsNullOrEmpty(strValue)){
throw new ArgumentException("Mandatory 'strValue' parameter empty");
}
另请注意,简单地抛出Exception
是不好的做法 - 如果存在BCL,则从BCL中选择适当的异常类要好得多,如果不存在,则自定义一个。 (感谢@djacobson)
答案 1 :(得分:5)
if(strValue=="")throw new Exception("Mandatory 'strValue' parameter empty");
您所能做的就是删除大括号和空格:)
答案 2 :(得分:4)
使用我认为你想要的空检查,并使用ArgumentException:
ThrowIfNullOrEmpty(strValue, "strValue");
...
private void ThrowIfNullOrEmpty(string parameterValue, string parameterName)
{
if String.IsNullorEmpty(parameterValue)
{
throw new ArgumentException("Mandatory 'strValue' parameter empty",
parameterName);
}
}
显然只有在你做这件事的情况下才有用。
答案 3 :(得分:3)
您可以使用代码合同。
您也可以使用string.IsNullOrWhitespace()
Contract.Requires(string.IsNullOrEmpty(strValue), "** fancy localized message here ***");
答案 4 :(得分:1)
它已经很短了。而不是做strValue ==“”,我会做String.Empty或String.NullOrEmpty,我不记得.NET中有哪一个
答案 5 :(得分:1)
不会变短,但如果想要更少的线,那么:
if (String.IsNullOrWhitespace(strValue)) throw new Exception("Mandatory 'strValue' parameter empty");
答案 6 :(得分:1)
你差不多都很短。我建议使用IsNullOrEmpty字符串函数来检查空字符串。此外,在异常处理中更具体,并抛出ArgumentException
。
if (String.IsNullOrEmpty(strValue)) { throw new ArgumentException("strValue must not be null or empty") };
答案 7 :(得分:0)
假设您尝试编写更多防御性代码,可以使用Trace.Assert
Trace.Assert(strValue != "", "Mandatory 'strValue' parameter is not empty");
或者您可以使用Fluent Validation库来封装更复杂的验证。