我经常有这样的参数的函数:
Public Shared Function F(ByVal address as String)
所以基本上我想抛出new ArgumentException("Invalid address!", "address")
现在的问题是,当我使用内置的重构工具重命名局部变量时(假设我将地址重命名为 addr),我的参数异常中的字符串仍然是“address”而不是“addr”!
我想知道这个问题的最佳解决方案是什么?(除了手动跟踪或使用 Ctrl-F 搜索)
我经常有这样的参数的函数:
Public Shared Function F(ByVal address as String)
所以基本上我想抛出new ArgumentException("Invalid address!", "address")
现在的问题是,当我使用内置的重构工具重命名局部变量时(假设我将地址重命名为 addr),我的参数异常中的字符串仍然是“address”而不是“addr”!
我想知道这个问题的最佳解决方案是什么?(除了手动跟踪或使用 Ctrl-F 搜索)
在 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));
}
}
ReSharper可以处理这个问题。它还可以重命名字符串中出现的变量。
但是,我不确定他们对 VB.NET 的支持有多好。