I have 2 classes both non-static. I need to access a method on one class to return an object for processing. But since both classes is non-static, I cant just call the metho
In order for any code in a static or a non-static class to call a non-static method, the caller must have a reference to the object on which the call is made.
In your case, Bar
's MethodCaller
must have a reference to Foo
. You could pass it in a constructor of Bar
or in any other way you like:
class Foo
{
Bar b1 = new Bar(this);
public object MethodToCall(){ /*Method body here*/ }
}
Class Bar
{
private readonly Foo foo;
public Bar(Foo foo) {
// Save a reference to Foo so that we could use it later
this.foo = foo;
}
public void MethodCaller()
{
// Now that we have a reference to Foo, we can use it to make a call
foo.MethodToCall();
}
}