如何将函数参数绑定到我在创建 ArgumentException 对象时提供的参数
本文关键字:参数 ArgumentException 对象 创建 函数 绑定 | 更新日期: 2023-09-27 17:56:53
我经常有这样的函数接受这样的参数:
Public Shared Function F(ByVal address as String)
所以基本上我想抛出新的 ArgumentException("无效地址!","地址")
现在的问题是,当我使用内置的重构工具来重命名局部变量时,(假设我将地址重命名为 addr),我的参数异常中的字符串仍然是"地址"而不是"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 支持有多好。