Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Gli eventi customizzati

No description
by

Federico Diana

on 9 May 2017

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Gli eventi customizzati

add logo here
Cosa sono
gli eventi in abito di programmazione?
La programmazione moderna si basa su un approccio denominato event-driven programming (programmazione a eventi). Questo tipo di programmazione permette di rendere il programma in grado di adattarsi a ciò che gli viene richiesto, comportandosi in modi prestabiliti al manifestarsi di certe situazioni (eventi) come ad esempio l'interazione di un utente.
Gli eventi customizzati
Come
vengono gestiti
gli eventi?
L’oggetto che genera un evento, detto mittente, non conosce direttamente l’oggetto che si occuperà di gestire l’evento ma esiste una classe, detta delegato, che fa da intermediario fra l’oggetto che genera l’evento e chi lo gestisce.

public class Cellulare
{
public string contenuto;
public delegate void GestoreAntenna(object sender, RicezioneEventArgs a);

public event GestoreAntenna InviaMessaggio;

string nome;

public Cellulare(string name)
{
this.nome = name;
}

public void Partenza()
{
string a;

a = Console.ReadLine();

if (nome.Equals("Cellulare di Leonardo"))
{
OnInviaMessaggio(
new RicezioneEventArgs("Messaggio ricevuto su "+ nome+". Contenuto: "+a));
}
else
{
OnInviaMessaggio(
new RicezioneEventArgs("Messaggio ricevuto su " + nome + ". Contenuto: " + a));
}
}

protected virtual void OnInviaMessaggio(RicezioneEventArgs e)
{
GestoreAntenna handler = InviaMessaggio;

if (handler != null)
{
handler(this, e);
}
}
}
class Notifiche
{
public void InizializzaComunicazione(Cellulare cell)
{
cell.InviaMessaggio += new Cellulare.GestoreAntenna(OnComunicazione);
}

void OnComunicazione(object sender, RicezioneEventArgs a)
{
Console.WriteLine("Il cellulare squilla: " + a.Comunicazione);
}
}
public class RicezioneEventArgs : EventArgs
{
public RicezioneEventArgs(string s)
{
_comunicazione = s;

}
string _comunicazione;

public string Comunicazione
{
get { return _comunicazione; }
set { _comunicazione = value; }
}


}
class Program
{


static void Main(string[] args)
{
Notifiche t = new Notifiche();

Cellulare CellulareL = new Cellulare("Cellulare di Leonardo");
Cellulare CellulareS = new Cellulare("Cellulare di Simone");


t.InizializzaComunicazione(CellulareL);
t.InizializzaComunicazione(CellulareS);
string risposta1;
Console.WriteLine("A chi vuoi mandare un messaggio fra Leonardo e Simone?");
risposta1 = Console.ReadLine();


if (risposta1 == "Leonardo")
{
Console.WriteLine("Inserisci ciò che vuoi scrivere");
CellulareL.Partenza();
}
else
{
if (risposta1 == "Simone")
{
Console.WriteLine("Inserisci ciò che vuoi scrivere");
CellulareS.Partenza();

}
else
{ Console.WriteLine("Contatto non esistente in rubrica"); }
}
Console.ReadKey();
}
}
Full transcript