1

我在一个项目的嵌套子文件夹中有很多源文件。我尝试替换 4 个不同的类,并希望找到源中分配它们的每个位置(堆 + 堆栈)。

不幸的是,由于包含结构不佳,无法信任 Visual Studio 的“搜索整个解决方案”功能,因此我不得不在源文件中进行手动搜索。

我认为就足够了:

"new CLASS1("三个标记之间的空格组合用于堆 "^CLASS2" ,我想说类名从行首开始(不包括空格)用于堆栈分配。

对于堆栈分配,[^a-zA-Z] CLASS3 [a-zA-Z]+尝试过,但我不熟悉正则表达式,所以想通过 SO 运行它。对于堆,只尝试了上面的那个字符串,但我知道一个简单的额外间距会破坏这种模式,所以我知道它是不正确的。

谁能想出一个更好的匹配器,甚至是一个更好的方法来解决这个问题?

谢谢,

AK

4

2 回答 2

2

确保消除对类的所有使用的一种有保证的方法是简单地删除类的定义或使其某些关键部分无效。然后,当您编译项目时,您将在使用该类的每种情况下都会收到错误消息。当所有内容都成功编译后,您将知道所有内容都已被替换。

您当然可以通过对简单案例使用查找/替换来加快速度,然后手动修复任何剩余案例。

于 2012-12-07T17:20:34.337 回答
2

将构造函数设为私有,每次尝试创建对象时都会收到错误消息。

使用私有 new() 运算符对堆分配执行相同的操作。

编辑:注意创建自身实例的类实现(包括静态方法)内部的代码。从这样的上下文调用私有构造函数是有效的并且不会触发错误。还要注意朋友类/功能。

于 2012-12-07T17:24:18.863 回答