相当的简写

时间:2011-04-18 20:33:08

标签: c#

相当于以下代码片段的速记是什么?

if (strValue == ""){
    throw new Exception("Mandatory 'strValue' parameter empty");
}

8 个答案:

答案 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库来封装更复杂的验证。