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

  • 本文关键字:静态方法 问题 访问 c# wpf
  • 更新时间 :
  • 英文 :


对于缺少信息,我深表歉意。

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

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

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

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

简短的简报:"你好!"没有出现。

简要说明:现在问题是:当我调试时,它会执行以下行:"MainWindow obj = new MainWindow()",但是,一旦完成,它就会跳到函数的末尾(大括号)。

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

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

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

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

最新更新