是否可以使用ReSharper(或其他工具)重新排序类以匹配其接口中的元素顺序?

本文关键字:接口 顺序 元素 ReSharper 可以使 其他 工具 是否 新排序 排序 | 更新日期: 2023-09-27 18:16:01

我当前的代码有一个继承自接口的类,但是接口中元素的顺序目前与其实现中的元素顺序完全不同。我希望这些匹配,但无法找到ReSharper的方法。

这个接口目前也有区域,我想在实现中也匹配相同的区域。我知道区域通常不是一个好主意,但这是一个特殊的情况下,它是有帮助的,因为类有很多属性,涉及到一个屏幕的不同区域,并在MVVM模式的视图模型,它将很难分解成单独的类。

所以,作为一个例子,这将是我的界面:
public interface IMyBusyViewModel
{
     #region Screen Area 1
     bool PropertyOne { get; set; }
     string PropertyTwo { get; set; }
     #endregion
     #region Screen Area 2
     bool PropertyThree { get; set; }
     string PropertyFour { get; set; }
     #endregion
}

这将是我当前的实现:

internal class MyBusyViewModel : IMyBusyViewModel
{
     string PropertyTwo { get; set; }
     string PropertyFour { get; set; }
     bool PropertyOne { get; set; }
     bool PropertyThree { get; set; }
}

这是我想要的执行结果:

internal class MyBusyViewModel : IMyBusyViewModel
{
     #region Screen Area 1
     bool PropertyOne { get; set; }
     string PropertyTwo { get; set; }
     #endregion
     #region Screen Area 2
     bool PropertyThree { get; set; }
     string PropertyFour { get; set; }
     #endregion
}

澄清一下,我不能使用这里描述的方法,因为界面中的项目是按照一种实际上不可能让ReSharper自动执行的方式排序的。

谢谢!

是否可以使用ReSharper(或其他工具)重新排序类以匹配其接口中的元素顺序?

据我所知,没有自动重新排列重构。

但是你可以欺骗和删除你在MyBusyViewModel中的所有属性,之后resharper会在IMyBusyViewModel下给你的红色弯曲,把光标放在界面上,按ALT+Enter,然后按Enter,它将按顺序重新创建所有属性。