/// <summary>
        /// Metodo per leggere da disco un file di tipo XML e salvarlo su variabile
        /// </summary>
        /// <returns>Restituisce una collezione di opere</returns>
        public Collezione LeggiXml()
        {
            StreamReader sr = new StreamReader("Museo.xml");

            Type[]        tipiDiOpere = { typeof(OperaDarte), typeof(Quadro), typeof(Scultura) };
            XmlSerializer xs          = new XmlSerializer(typeof(Collezione), tipiDiOpere);
            Collezione    comodo      = (Collezione)xs.Deserialize(sr);

            sr.Close();
            return(comodo);
        }
        static void Main(string[] args)
        {
            OperaDarte q1 = new Quadro("quadro 1", "matteo", 12, 10);
            OperaDarte q2 = new Quadro("quadro 2", "cristian", 12, 10);
            OperaDarte s1 = new Scultura("scultura 1", "matteo", 10, 14, 10);
            OperaDarte s2 = new Scultura("scultura 2", "luca", 4, 6, 23);

            Console.WriteLine(q1.printIngombro());
            Console.WriteLine(q2.printIngombro());   //stampo gli ingombri
            Console.WriteLine(s1.printIngombro());
            Console.WriteLine(s2.printIngombro());

            Console.WriteLine("\n");

            Console.WriteLine(q1);
            Console.WriteLine(q2);                   //stampo le informazioni
            Console.WriteLine(s1);
            Console.WriteLine(s2);

            Console.WriteLine("\n");

            //Controllo se hanno lo stesso ingombro e stampo il risultato
            if (q1.Equals(s1))
            {
                Console.WriteLine(q1.Titolo + " e " + s1.Titolo + " occupano lo stesso spazio");
            }
            else
            {
                Console.WriteLine(q1.Titolo + " e " + s1.Titolo + " occupano spazi diversi");
            }

            if (q1.Equals(q2))
            {
                Console.WriteLine(q1.Titolo + " e " + q2.Titolo + " occupano lo stesso spazio");
            }
            else
            {
                Console.WriteLine(q1.Titolo + " e " + q2.Titolo + " occupano spazi diversi");
            }

            Console.WriteLine("\n");

            //creo la collezione di opere
            Collezione c1 = new Collezione("Collezione 1", "vicenza");

            //aggiungo le opere alla collezione
            c1.InserisciOpera(q1);
            c1.InserisciOpera(q2);
            c1.InserisciOpera(s1);
            c1.InserisciOpera(s2);
            //ne metto una che ho gia' messo per controllare se la aggiunge
            c1.InserisciOpera(q1);

            //stampo la collezione
            Console.WriteLine(c1);

            //cerco opera e stampo ingombro. Se e' 0 vuol dire che l'opera non e' presente nella collezione
            double tmp = c1.OccupazioneOpera("quadro 1");

            if (tmp != 0)
            {
                Console.WriteLine("L'opera occupa: " + tmp);
            }
            else
            {
                Console.WriteLine("l'opera non e' presete in memoria");
            }

            c1.Save();
            Collezione c2 = new Collezione("prova", "schio");

            Console.WriteLine("\nDati letti da file xml");
            Console.WriteLine(c2.LeggiXml().ToString());
        }