我有几个可重用的方法GetChartData()和GetPeopleData()。它们存储在名为CentralData.cs的控制器中
我希望能够从不同的控制器中调用这些方法中的任何一种,但我不确定如何做到这一点。有谁知道我如何调用位于另一个控制器中的方法?
如果方法属于同一类,那么它就像:
一样简单MyMethod()
{
GetChartData();
}
因此,如果方法在不同的控制器中,并且如同不同的类,我该如何调用它?
答案 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个控制器类:Controller
和OtherController
,那么你可以从第一个类中访问位于第二个类中的方法,如下所示:
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
}
}
我希望这是你正在寻找的东西,这是一个充分的解释。如果我太不清楚,那就问一下有什么问题。