我为Action
创建了一个扩展方法,我希望在代码中用action.SafeInvoke()
替换所有出现的action()
。但问题是,action
只是一个示例变量名称,实际上它们都是不同的。使用()
搜索显然会产生可怕的结果。通过Action
搜索,在代码中查找每个单独的var引用,并在其中找到直接调用,这有点慢。
当变量名未知时,有没有可能通过()
操作符找到所有出现的Action
调用?
发布于 2013-09-17 00:16:51
据我所知,您有如下类型的Action
实例:
Action foo = ...
Action bar = ...
然后你在代码中有:
foo();
bar();
您需要将foo()
更改为foo.SafeInvoke()
,将bar()
更改为bar.SafeInvoke()
。
在Visual Studio中没有任何东西可以自动为您完成这项工作,编写一些代码来完成这项工作也不是一件容易的事情。与手动更改相比,您在该扩展上花费的时间要长得多。
您可以使用Visual Studio的“查找使用实例”功能来查找使用Action
的每个地方。这至少可以帮助您找到需要进行更改的位置。
我很有兴趣知道你的SafeInvoke
是做什么的。如果它所做的只是一个null检查,那么您可能需要考虑是否真的有必要这样做。
https://stackoverflow.com/questions/18832422
复制相似问题