using AddisonWesley.Michaelis.EssentialCSharp.Chapter08.Listing08_05;
using AddisonWesley.Michaelis.EssentialCSharp.Chapter12.Listing12_11;

namespace AddisonWesley.Michaelis.EssentialCSharp.Chapter12.Listing12_41
{
    public class Program
    {
        public static void Main()
        {
            Contact contact1 = new Contact("Princess Buttercup");
            Contact contact2 = new Contact("Inigo Montoya");
            Pair<Contact> contacts = new Pair<Contact>(contact1, contact2);

            // Ten kod prowadzi do błędu z komunikatem, że nie można przeprowadzić konwersji.
            // Wyobraź sobie jednak, że taka instrukcja jest dozwolona. 
            // IPair<PdaItem> pdaPair = (IPair<PdaItem>) contacts;
            // Wtedy poniższy kod jest poprawny, ale nie zapewnia bezpieczeństwa ze względu na typ.
            // pdaPair.First = new Address("Ulica Sezamkowa 123");
        }
    }
}
