KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Given the following C# class definitions and code: public class BaseClass { public virtual void MyMethod() { ...do something... } } public class A : BaseClass { public override void MyMethod() { ...do something different... } } public class B : BaseClass { public override void MyMethod() { ...do something different... } } public class AnotherObject { public AnotherObject(BaseClass someObject) { someObject.MyMethod(); //This calls the BaseClass method, unfortunately. } } I would like to call the MyMethod() that is actually found in A or B, assuming the object passed in is actually an instance of A or B, not that which is found in BaseClass . Short of doing something like this: public class AnotherObject { public AnotherObject(BaseClass someObject) { A temp1 = someObject as A; if (A != null) { A.MyMethod(); } B temp2 = someObject as B; if (B != null) { B.MyMethod(); } } } How can I do it?
Tags (comma-separated)
Save Edits
Cancel