KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
It looks like in the following case the polymorphism does not work properly I have the following definitions: interface BaseInterface{} interface NewInterface:BaseInterface{} class NewClass:NewInterface{} class GenericClass<T> where T:BaseInterface { public string WhoIAm(T anObject) { return TestPolymorphism.CheckInterface(anObject); } } class ImplementedClass:GenericClass<NewInterface>{} class TestPolymorphism { public static string CheckInterface(BaseInterface anInterface) { return "BaseInterface"; } public static string CheckInterface(NewInterface anInterface) { return "NewInterface"; } } Then when I call : NewClass nc = new NewClass(); ImplementedClass impClass = new ImplementedClass(); Console.WriteLine("The result is " + impClass.WhoIAm(nc)); I have "The result is BaseInterface" I was expecting to have "The result is NewInterface" as nc implement BaseClass and NewClass What would be the best way to get "NewClass" as the result ? Thanks
Tags (comma-separated)
Save Edits
Cancel