0

我做了一个扩展方法Action,我想在代码中替换所有出现的action()with action.SafeInvoke()。但问题是这action只是一个示例 var name,实际上它们都是不同的。搜索()显然会产生可怕的结果。在代码中搜索Action和查找每个单独的 var 引用并在其中找到直接调用有点慢。

当变量名未知时,是否有可能以某种方式找到运算符的所有Action调用?()

4

1 回答 1

2

据我了解,您有以下类型的实例Action

Action foo = ...
Action bar = ...

然后你在代码中:

foo();
bar();

你想要的东西会foo()变成foo.SafeInvoke()和。bar()bar.SafeInvoke()

Visual Studio 中没有任何东西可以自动为您执行此操作,并且编写一些内容来执行此操作并非易事。与手动进行更改相比,您在该扩展上花费的时间要多得多。

您可以使用 Visual Studio 的“查找用法”功能来查找每个Action使用的位置。这至少可以帮助您找到需要进行更改的位置。

我很想知道,你是做什么的SafeInvoke。如果它所做的只是一个空检查,您可能需要考虑它是否真的有必要。

于 2013-09-16T16:16:50.897 回答