Resharper提供从WPF中删除Window类的冗余继承

Kyr*_*o M 2 c# wpf resharper inheritance window

在WPF项目中,Resharper提供了从Window类中删除冗余的继承:

using System.Windows;

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }
}
Run Code Online (Sandbox Code Playgroud)

甚至可以删除using System.Windows;.

public partial class MainWindow
{
    public MainWindow()
    {
        InitializeComponent();
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么他实际上提供这个,为什么没有继承一切正常?正如我在WPF的书中读到的那样,任何窗口都应该继承...

Joh*_*wen 10

XAML代码隐藏文件是部分类.编译器从XAML文件生成的代码还包括Window派生,因此代码隐藏中的代码是冗余的.

  • 你实际上并没有删除窗口继承.该类仍然继承Window,而不是在您的代码后面的文件中.如果在代码隐藏中删除它,仍然在设计器文件中指定.如果你在代码隐藏中使用它,那么它会在两个地方指定.这就是它被标记为多余的原因. (2认同)