public class IntThing : IThing
public class FloatThing : IThing
public static string func(IThing t)
case IntThing : return "This is an IntThing";
case FloatThing : return "This is an FloatThing";
public static void Main()
IThing t = new IntThing();
Console.WriteLine("{0}", func(t));