using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DynamicDetails
{
    class Examples9_12
    {
        public static void GenericsAndDynamic()
        {
            // Listing 14-9
            List<dynamic> x = new List<dynamic>();
            Console.WriteLine(x.GetType() == typeof(List<object>));

            // Listing 14-10
            x.Add(12);
            x.Add(3.4);
            Console.WriteLine(x[0] + x[1]);
        }

        public static void GenericTypeCompatibility()
        {
            // Listing 14-11
            List<dynamic> x = new List<object>();
            x.Add(12);
            x.Add(3.4);
            Console.WriteLine(x[0] + x[1]);
        }
    }

    // Kod umieszczony w komentarzach gdyż ilustruje coś co nie może działać.
    // Listing 14-12
    //public class DynList : IEnumerable<dynamic>  // Tej klasy nie można skompilować
    //{
    //    // Podawanie implementacji nie ma sensu ponieważ to i tak nie będzie działać.
    //}
}
