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

MyClass class = new MyClass();

最佳答案

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

另一方面,它可能并不是您真正需要的。因此,如果您在Application类内部的应用程序启动时创建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();
    }
}

关于c# - 从MainWindow访问类的实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15798775/

10-17 00:47