1

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

MyClass class = new MyClass();

?

4

2 回答 2

2

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

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

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

您的应用程序代码:

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();
    }
}
于 2013-04-03T22:02:28.377 回答
0

听起来很可疑,但是您通过使用该方法来做您所说的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()
    {
        //  ....
    }
}

这是关于静态与实例的一些文档

于 2013-04-03T21:58:28.767 回答