Tworzę sobie w celach naukowych klasę Menu. W klasie tej jest lista, która przechowuje elementy typu Command (kolejna moja klasa w której jest String nazwaKomendy oraz XXXX-zaraz wyjaśnię). Chcę zrobić metodę w klasie Menu która przyjmuje obiekt klasy Command, czyli nazwę komendy oraz XXXX - coś w rodzaju wskaźnika na funkcję/referencję do funkcji/delegację. Właśnie z tą ostatnią rzeczą mam problem. Jak stworzyć klasę, w której będę miał listę wskaźników na funkcję?

Może dam przykład:

namespace ConsoleApplication1
{
    class Program
    {
        public void PokazInfo()
        {
            Console.WriteLine("Tutaj jakieś bardzo ważne informacje ;)");
        }

        static void Main(string[] args)
        {
            Menu menu = new Menu();
            menu.AddCommand( new Command( "info", PokazInfo() ) );
        }
    }
}

Jak przekazać PokazInfo(), jak zapisać referencję tej funkcji do pamięci? Tak żebym potem mógł sobie wykonać coś takiego:
menu.RunCommandAt(3); // wykonać funkcję która jest zapisana w liście pod indeksem 3

EDIT:
Ok, poradziłem sobie już. Zrobiłem to delegacjami. W sumie mogłem sobie z tym poradzić od początku ale zapytałem bo nie wiedziałem jak zrobić taki obiekt by móc do niego przypisać różne funkcje (różne typy, argumenty). Ale nie da się tak, zrobiłem to trochę inaczej.