【发布时间】:2015-02-13 17:46:57
【问题描述】:
我有 2 个类都是非静态的。我需要访问一个类上的方法以返回一个对象进行处理。但由于这两个类都是非静态的,我不能只以静态方式调用该方法。我也不能以非静态方式调用该方法,因为程序不知道对象的标识符。
在任何事情之前,如果可能的话,我希望两个对象尽可能保持非静态。否则将需要对其余代码进行大量重组。
这是代码中的示例
class Foo
{
Bar b1 = new Bar();
public object MethodToCall(){ /*Method body here*/ }
}
Class Bar
{
public Bar() { /*Constructor here*/ }
public void MethodCaller()
{
//How can i call MethodToCall() from here?
}
}
【问题讨论】:
-
基本上你想做类似
new Foo().MethodToCall();我想... -
您需要
Bar类中的Foo类的对象,然后对其调用instance 方法。或者您可以将Foo类型的参数传递给Bar类中的方法。 -
Neither can I call the method in a non-static way because the program doesnt know the name of the object.wut -
你知道你可以将方法设为静态,但不能将类设为静态,对吧?
-
即使您提出的问题是可能的,但它几乎没有任何意义。考虑在类上添加静态重载。这样,您可以根据情况进行静态调用和常规调用。
标签: c# non-static