1

How can I invoke/call an object's method from another object method when both objects are created dynamically?

The situation is as follows:

I have two objects created dynamically each object correspond to a different class

objA
   Method1A()
objB
   Method1B()

I want to call objA's method1A() from objB's method1B().

How can I accomplish that / what approach do you recommended ?

2 Answers 2

2

In order to invoke an instance method on some type you need an instance of that type. So if Method1B is supposed to invoke an instance method on objA you could pass this instance as parameter to the method:

public void Method1B(ObjA objA)
{
    objA.Method1A();
}
Sign up to request clarification or add additional context in comments.

4 Comments

I think this won't work if objA is created after objB, in that case how to implement it?
@armadillo.mx If that is possible then you have a cycle. You can't solve that with separate assemblies now, except when you can avoid cyclic declarations; then you can compile one assembly without the cyclic call, and then recompile with it, after the other assemblies have been built. You could try the same here, but unless you know the cycles and where you can temporarily break them, you have some analysis to do.
@Mark Hurd, you're right I think I'll need a different approach, thanks!
@armadillo.mx In that case I've upped my comment to an answer.
1

If it is possible that "objA is created after objB" then you have a cycle. You can't solve that with separate assemblies now, except when you can avoid cyclic declarations; then you can compile one assembly without the cyclic call, and then recompile with it, after the other assemblies have been built. You could try the same here, but unless you know the cycles and where you can temporarily break them, you have some analysis to do.

Note this question asks for and gets approaches similar to mine for cyclic dependencies between normal assemblies.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.