Resharper 重拾器或码流-将标志从负更改为正

Resharper 重拾器或码流-将标志从负更改为正,resharper,coderush,Resharper,Coderush,我有一个具有负标志(“DoNot{Action}”)的类。我想将这个标志改为肯定的“Do”,并更改代码中的所有检查,基本上否定它们。有这样的重构吗 这里有一个例子。如果我将flage DoNotFilter更改为DoFilter,那么查看此标志的所有代码都应该相应地更改 public bool DoNotFilter {get;private set;} 更改为 public bool DoFilter {get;private set;} 所以 需要换成 if (attribute.DoF

我有一个具有负标志(“DoNot{Action}”)的类。我想将这个标志改为肯定的“Do”,并更改代码中的所有检查,基本上否定它们。有这样的重构吗

这里有一个例子。如果我将flage DoNotFilter更改为DoFilter,那么查看此标志的所有代码都应该相应地更改

public bool DoNotFilter
{get;private set;}
更改为

public bool DoFilter
{get;private set;}
所以

需要换成

if (attribute.DoFilter == false)

您可能能够在ReSharper中进行内联属性重构,以完成您想要的任务。不过,我不确定它是否能与属性一起工作

例如:

public bool DoNotFilter
{ get; private set; }

public void Foo()
{
    if (DoNotFilter == true)
    {
        Console.WriteLine("Aha!");
    }
}
现在改为:

public bool DoFilter
{ get; private set; }

public bool DoNotFilter
{ get { return !DoFilter; } }
现在重构DoNotFilter和内联属性:

public void Foo()
{
    if (!DoFilter == true)
    {
        Console.WriteLine("Aha!");
    }
}
如果您尝试此操作,请确保首先将所有内容都签入到源代码管理中!:)没有保证

您还可以删除冗余比较,以使if降至:

if (!DoFilter)

您可以使用Visual Studio“查找和替换”对话框。要打开对话框,请按Ctrl+H

确保选中“使用”复选框,并在下拉列表中选择“正则表达式”。我还会选中“搜索隐藏文本”和“向上搜索”复选框


在“查找内容”中键入:
,是否要重命名字段并翻转对其的所有布尔引用?我不知道这两款产品都提供了这种功能。是的,这正是我想要的。我继承了一些代码,但它对负标志没有意义。瓦迪姆,谢谢你的回答,但上面的代码只是一个示例,它不像上面那样简单。谢谢,我可以试试这个。属性只是一个示例,没有涉及任何属性(注释),因为它是一个解决方案中的所有属性
if (!DoFilter)
if (attribute.DoFilter == true)
if (attribute.DoFilter == false)