从静态方法问题访问非静态方法

时间:2015-02-02 18:09:38

标签: c# wpf

我为缺乏信息而道歉。

我在我的解决方案中创建了一个名为myClass.cs的类 - myClass包含一个带有以下代码的静态方法:

public static void myFunction()
{
    MainWindow obj = new MainWindow();
    obj.someFunction();
}

MainWindow是包含文本框等的GUI窗口。 类:MainWindow.cs包含以下我试图从myClass.cs调用的方法:

public void someFunction()
        {
            MessageBox.Show("Hello!");
        }

简短说明:"您好!"没有出现。

简短的言论: 现在问题出现了:当我调试它时执行以下行:" MainWindow obj = new MainWindow()"但是,一旦它完成它只是跳到结束功能(大括号)。

1 个答案:

答案 0 :(得分:3)

你的观察结果都没有意义 - 程序只是在没有被告知*的情况下不“跳过”行,并且不明显它不会执行。

我的猜测是你有一个现有的 MainWindow实例,并且你期望该函数影响该实例。如果是这种情况,那么您需要获得对要执行该函数的实例的引用;最容易将其添加为参数:

public static void myFunction(MainWindow obj) {
    obj.someFunction();
}

*除了编译器优化之外,可以在不影响输出的情况下删除代码。