VS:自动“ArgumentNull”检查?

时间:2009-03-31 09:03:20

标签: .net visual-studio autocomplete code-generation resharper

通常情况下我需要检查方法的参数是否为null,例如:

public static bool operator <= 
    (ApplicationVersion i_app1, ApplicationVersion i_app2)
{ 
    if (i_app1 == null) throw new ArgumentNullException("i_app1");
    if (i_app2 == null) throw new ArgumentNullException("i_app2");
    [...]
}

有没有办法自动执行此操作(半),例如Code代码段?自动完成? ReSharper的?

2 个答案:

答案 0 :(得分:2)

Resharper具有此功能。如果您将光标放在参数名称上 - 例如i_app1并按Alt-Enter键 - 它会提供检查空值的选项。

答案 1 :(得分:2)

我有一个扩展方法,至少使它稍微更简单:

i_app1.ThrowIfNull("i_app1");

实施很简单:

public static void ThrowIfNull<T>(this T argument, string name)
    where T : class
{
    if (argument == null)
    {
        throw new ArgumentNullException(name);
    }
}

我更喜欢使用片段或其他内容,因为这意味着代码本身更短。打字对我来说很少是一个问题 - 尽管保持代码尽可能可读是。

希望.NET 4.0中的Code Contracts仍然可以使这个整洁。