Example #1
0
        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();
        }