如何从另一个控制器调用方法?

时间:2016-07-28 09:57:19

标签: c# controller

我有几个可重用的方法GetChartData()和GetPeopleData()。它们存储在名为CentralData.cs的控制器中

我希望能够从不同的控制器中调用这些方法中的任何一种,但我不确定如何做到这一点。有谁知道我如何调用位于另一个控制器中的方法?

如果方法属于同一类,那么它就像:

一样简单
MyMethod()
{
    GetChartData();
}

因此,如果方法在不同的控制器中,并且如同不同的类,我该如何调用它?

3 个答案:

答案 0 :(得分:0)

您可以创建Controller的对象,并将该函数称为简单类。我不认为这种方法有任何问题。毕竟,控制器只是一个类。 如,

MyController obj = new MyController();
obj.MyFunction();

答案 1 :(得分:0)

如果您有对象的引用,则只能从另一个类调用非静态方法 如果在第一个控制器中的某个位置创建第二个控制器,例如:

ButtonClick(object Sender, EventArgs e) {
    CentralData c = new CentralData();
}

你可以简单地将该引用保存在私有变量中,然后再说

MyMethod()
{
    c.GetChartData();
}

如果在另一个类中创建它们,则必须将CentralData对象传递给其他控制器,如

public static void Main() {
    CentralData c = new CentralData();
    WindowController w = new WindowController(c);
}

public static void Main() {
    CentralData c = new CentralData();
    WindowController w = new WindowController();
    w.c = c;
}

答案 2 :(得分:0)

如果你的意思是你有2个控制器类:ControllerOtherController,那么你可以从第一个类中访问位于第二个类中的方法,如下所示:

class Controller
{
    public void MethodA()
    {
        OtherController.MethodB(); // This will work because MethodB is static
        // Like shown above you can call a static method from anywhere
    }
}

class OtherController
{
    public static void MethodB() // <-- Notice "static"
    {
        // Do stuff
    }
}

我希望这是你正在寻找的东西,这是一个充分的解释。如果我太不清楚,那就问一下有什么问题。