CSharp · Console
using System;
public class BaseClass
{
public string Name;
}
public class DerivedClass1 : BaseClass
{
public DerivedClass1()
{
Name = "DerivedClass1";
}
public void NonOverridenMethod()
{
Console.WriteLine("Method called!");
}
}
public class DerivedClass2 : BaseClass
{
public DerivedClass2()
{
Name = "DerivedClass2";
}
}
public class Program
{
public static void CallMethod(BaseClass c, string methodName)
{
var mi = c.GetType().GetMethod(methodName);
if(mi != null)
{
Console.WriteLine("{0} has method {1}, calling it:", c.Name, methodName);
mi.Invoke(c, null);
} else {
Console.WriteLine("{0} doesn't have method {1}!", c.Name, methodName);
}
}
public static void Main()
{
var a = new DerivedClass1();
var b = new DerivedClass2();
CallMethod(a, "NonOverridenMethod");
CallMethod(b, "NonOverridenMethod");
}
}