Как связать аргументы функции с параметрами, которые я предоставляю при создании объекта ArgumentException? - PullRequest
1 голос
/ 18 мая 2011

У меня часто есть функции, которые принимают аргументы вроде этого:

Public Shared Function F(ByVal address as String)

Так что в основном я хочу выдать новое ArgumentException («Неверный адрес!», «Адрес»)

Теперь проблема в том, что когда я использую встроенные инструменты рефакторинга для переименования локальных переменных (скажем, я переименую адрес в addr), строка в моем исключении аргумента по-прежнему «address», а не «addr»!

Мне интересно, как лучше всего решить эту проблему? (кроме отслеживания вручную или поиска Ctrl-F)

Ответы [ 2 ]

3 голосов
/ 18 мая 2011

В C # вы можете сделать что-то подобное:

static string GetMemberName<T>(Expression<Func<T>> expr)
{
  var body = ((MemberExpression)expr.Body);
  return body.Member.Name;
}

Вы бы тогда использовали это так:

static void Test(string someParam)
{
    if (someParam == null) { 
        throw new ArgumentNullException(GetMemberName(() => someParam)); 
    }
}
1 голос
/ 18 мая 2011

ReSharper может справиться с этим. Он также может переименовывать вхождения переменных в строки.
Однако я не уверен, насколько хороша их поддержка VB.NET.

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