ВС: Автоматическая проверка «ArgumentNull»? - PullRequest
2 голосов
/ 31 марта 2009

Часто бывает, что мне нужно проверить аргументы метода на предмет отсутствия значений, например:

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");
    [...]
}

Есть ли способ сделать это (полу) автоматически, как фрагменты кода? Автозаполнения? Resharper?

Ответы [ 2 ]

2 голосов
/ 31 марта 2009

У меня есть метод расширения для этого, который, по крайней мере, делает его немного проще:

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, тем не менее, сделают этот процесс еще лучше.

2 голосов
/ 31 марта 2009

Resharper имеет эту функцию. Если у вас есть курсор над именем параметра - скажем, i_app1 и нажмите Alt-Enter - он предлагает опцию для проверки на ноль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...