重命名所有变量和文字而不混淆

本文关键字:文字 变量 重命名 | 更新日期: 2023-09-27 18:05:05

我想重命名代码中的所有类和变量,以使其更模糊。例如,下面的示例代码:

public class Dog
{
   public Dog()
   {
      Bark(4);
   }
   private void Bark(int times)
   {
       //Do something
   }
}

就变成:

public class Cat
{
   public Cat()
   {
      Wood(4);
   }
   private void Wood(int asdasd)
   {
       //Do something
   }
}

如果这是不可能的,也许还有更简单的方法,我们只需在每个变量/名称的中间添加一个字符:

public class Do1g
{
   public Do1g()
   {
      Bar1k(4);
   }
   private void Bar1k(int time1s)
   {
       //Do something
   }
}

功能保持不变,并且是人类可读的;但是,所有关于变量命名、类、方法等的信息都会被更改。

是否有一种方法可以混淆,同时保持可读性?

重命名所有变量和文字而不混淆

您可以使用Visual Studio Code Model来重命名符号。例如,要在当前函数名中添加'x':

    EnvDTE.TextSelection ts = DTE.ActiveWindow.Selection as EnvDTE.TextSelection;
    EnvDTE80.CodeElement2 func = ts.ActivePoint.CodeElement[vsCMElement.vsCMElementFunction]
        as EnvDTE80.CodeElement2;
    func.RenameSymbol(func.Name + "x");

(您可以在Visual Commander中运行此代码或在您自己的扩展中使用)。

此重命名操作还更新所有引用。您可以很自然地扩展这个示例来重命名类、名称空间和过程文件、项目。

首先我不知道这是如何使用的,但是,在评论中你说创建一个看起来像期望对象的新对象是可以接受的,所以

这是我的建议

  1. 使用反射读取类的所有方法
  2. 创建一个包含步骤1中所有属性和方法名称的列表

从那里,您可以使用LINQ使用从您创建的列表中创建的名称创建一个新对象。

请记住,我不知道如何或甚至如果这将工作。