Sto studiando c# e sto facendo degli esercizi. 
Creando un ArreyList vorrei poi stampare in console soltanto la materia del docente
Sto incontrando una difficoltà con questo codice:
Ho creato una classe Persona con le seguenti proprietà:
nome, cognome, data di nascita e indirizzo
una classe Docente:Persona
con proprietà: materia
una classe Allievo:Persona
con proprietà: matricola
Creo Oggetti di tipo Persona, Docente e Allievi e assegno i valori
	    Persona p = new Persona();
            p.Indirizzo = "Via delle Magnolie, 25";
            p.Nome = "Elio";
            p.Cognome = "Castello";
            p.Dt_nascita = DateTime.Parse("01/01/2011");
            Persona p1 = new Persona();
            p1.Nome = "Vincenzo";
            p1.Cognome = "Porta";
            p1.Dt_nascita = DateTime.Parse("01/02/2000");
            p1.Indirizzo = "Via Po 1";
            Persona p2 = new Persona();
            p2.Nome = "Sandra";
            p2.Cognome = "Aprile";
            p2.Dt_nascita = DateTime.Parse("01/02/1999");
            p2.Indirizzo = "Via Po 2";
            //Lista dei Docenti
            Docente d = new Docente();
            d.Nome = "DNome";
            d.Cognome = "DCognome";
            d.Dt_nascita = DateTime.Parse("30/01/0001");
            d.Indirizzo = "Indirizzo Docente";
            d.Materia = "Storia";
            Docente d1 = new Docente();
            d1.Nome = "DNome1";
            d1.Cognome = "DCognome1";
            d1.Dt_nascita = DateTime.Parse("29/01/0001");
            d1.Indirizzo = "Indirizzo Docente1";
            d1.Materia = "Italiano";
            Docente d2 = new Docente();
            d2.Nome = "DNome2";
            d2.Cognome = "DCognome2";
            d2.Dt_nascita = DateTime.Parse("28/01/0002");
            d2.Indirizzo = "Indirizzo Docente2";
            d2.Materia = "Inglese";
            //Lista degli Allievi
            Allievo a = new Allievo();
            a.Nome = "ANome";
            a.Cognome = "ACognome";
            a.Dt_nascita = DateTime.Parse("30/01/0001");
            a.Indirizzo = "Indirizzo Allievo";
            Allievo a1 = new Allievo();
            a1.Nome = "ANome1";
            a1.Cognome = "ACognome1";
            a1.Dt_nascita = DateTime.Parse("29/01/0001");
            a1.Indirizzo = "Indirizzo Allievo1";
            Allievo a2 = new Allievo();
            a2.Nome = "ANome2";
            a2.Cognome = "ACognome2";
            a2.Dt_nascita = DateTime.Parse("28/01/0002");
            a2.Indirizzo = "Indirizzo Allievo2";
Popolo l'ArreyList Persone
            ArrayList Persone = new ArrayList();
            Persone.Add(p); //classe Persona
            Persone.Add(p1); //classe Persona
            Persone.Add(p2); //classe Persona
            Persone.Add(d); //classe Docente
            Persone.Add(d1); //classe Docente
            Persone.Add(d2); //classe Docente
            Persone.Add(a); //classe Allievo
            Persone.Add(a1); //classe Allievo
            Persone.Add(a2); //classe Allievo            
Provo a stampare la materia
 foreach (Persona vD in Persone)
                if (vD is Docente)
                    Console.WriteLine(vD.Materia);
 ma ottengo questo messaggio:
Errore	1	'ConsoleApplication1.Persona' non contiene una definizione di 'Materia' e non è stato trovato alcun metodo di estensione 'Materia' che accetta un primo argomento di tipo 'ConsoleApplication1.Persona'. Probabilmente manca una direttiva using o un riferimento a un assembly.	C:\Users\xxx\Documents\Visual Studio 2012\Projects\Prova\Prova\Program.cs	128	42	Prova