using System.ComponentModel;
using System.Collections.Generic;
private delegate void Check(Studente studente);
public string Nome { get; set; }
public string Cognome { get; set; }
public static void Main() {
var metodi = new Dictionary<string, Check> {
{ "StampaNome", s => { Console.WriteLine(s.Nome); } },
{ "StampaCognome", s => { Console.WriteLine(s.Cognome); } }
var studente = new Studente { Nome = "Mario", Cognome = "Rossi" };
Console.WriteLine("Digita il nome di un metodo, a scelta fra StampaNome e StampaCognome");
var nomeMetodo = Console.ReadLine();
if (metodi.ContainsKey(nomeMetodo))
Console.WriteLine("Eseguo il metodo {0}", nomeMetodo);
metodi[nomeMetodo](studente);
Console.WriteLine("Il metodo di nome {0} non esiste", nomeMetodo);