using System; public delegate V Mapper (T item); public interface ITree { void Map (Mapper mapper); } public class Tree : ITree { T item; public Tree (T item) { this.item = item; } public void Map (Mapper mapper) { V new_item = mapper (item); } } class X { private string themap (int i) { return String.Format ("AA {0,4} BB", i); } void Test () { Tree tree = new Tree (3); tree.Map (new Mapper (themap)); } public static void Main () { X x = new X (); x.Test (); } }