如何将函数参数绑定到创建 ArgumentException 对象时提供的参数?

发布于 2024-11-08 04:00:14 字数 329 浏览 0 评论 0原文

我经常有这样的函数:

Public Shared Function F(ByVal address as String)

所以基本上我想抛出 new ArgumentException("Invalid address!", "address")< /strong>

现在的问题是,当我使用内置的重构工具重命名局部变量时(假设我将地址重命名为 addr),我的参数异常中的字符串仍然是“address”而不是“addr”!

我想知道这个问题的最佳解决方案是什么? (手动跟踪或使用 Ctrl-F 搜索除外)

I often have functions that take arguments like this:

Public Shared Function F(ByVal address as String)

So basically I want to throw new ArgumentException("Invalid address!", "address")

Now problem is that when I'm using the built in refactoring tools to rename the local variables, (let's say i rename address to addr), The string in my argument exception is still "address" and not "addr"!

I'm wondering what's the best solution to this problem? (other than manually tracking or with Ctrl-F search)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

陈甜 2024-11-15 04:00:14

在 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)); 
    }
}

In C#, you can do something like that:

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

You would then use it like this:

static void Test(string someParam)
{
    if (someParam == null) { 
        throw new ArgumentNullException(GetMemberName(() => someParam)); 
    }
}
来世叙缘 2024-11-15 04:00:14

ReSharper 可以处理这个问题。它还可以重命名字符串中出现的变量。
但是,我不确定他们的 VB.NET 支持有多好。

ReSharper can handle this. It can also rename occurrences of variables in strings.
However, I am not sure, how good their VB.NET support is.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文