从主窗口访问类的实例

本文关键字:实例 访问 窗口 | 更新日期: 2023-09-27 18:07:14

我有一个应用程序与MainWindow和另一个类称为MyClass。MyClass中有一个方法,我需要从MainWindow类访问它。MyClass在应用程序加载时被加载。如何从MainWindow调用MyClass中的方法而不创建MyClass的新实例:

MyClass class = new MyClass();

?

从主窗口访问类的实例

对您的问题的直接回答是将类方法标记为静态。这将允许您从任何地方调用它。

另一方面,它可能不是你真正需要的。因此,如果您在应用程序启动时在application类中创建MyClass,那么您需要公开MyClass实例,例如,通过application属性。查看示例代码:

public class MyClass
{
    public void Method()
    {
        // ...
    }
}

App的代码:

public partial class App
{
    public MyClass MyClassInstance { get; private set; }
    private void Application_Startup(object sender, StartupEventArgs e)
    {
        MyClassInstance = new MyClass();
    }
}

以及调用类方法的窗口代码:

public partial class MainWindow : Window
{
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        ((App)Application.Current).MyClassInstance.Method();
    }
}

听起来很可疑,但你做你所说的方法static

public partial class MainWindow
{
    public void MethodInMainWindow()
    {
        // Don't need to create a new instance of MyClass
        MyClass.MethodInMyClass();
    }
}
public class MyClass
{
    public static void MethodInMyClass()
    {
        //  ....
    }
}

这里有一些关于静态和实例的文档