public void Demo() { var foo = new SpecificRow(); var bar = new SpecificRowListItem(); var baz = new RowListItem <SpecificRow>(); string name; name = GetName(foo); Console.WriteLine(name); name = GetName(baz); Console.WriteLine(name); name = GetName(bar); Console.WriteLine(name); name = GetName((RowListItem <SpecificRow>)bar); // this alternative invokes the second overload Console.WriteLine(name); //name = GetName<SpecificRow>(bar); Console.ReadKey(); }
public static void Main(string[] args) { var foo = new SpecificRow(); var bar = new SpecificRowListItem(); var baz = new RowListItem <SpecificRow>(); string name; name = GetName(foo); Console.WriteLine(name); //oink name = GetName(baz); Console.WriteLine(name); //nested oink name = GetName(bar); Console.WriteLine(name); //nested oink name = GetName((RowListItem <SpecificRow>)bar); Console.WriteLine(name); //nested oink //name = GetName<SpecificRow>(bar); Console.ReadKey(); }