using System; using System.Diagnostics; public class FavoriteManager { Favorite[] favs; public delegate void FavoriteEventHandler(Favorite fav); private event FavoriteEventHandler FavoriteAddedInternal; public event FavoriteEventHandler FavoriteAdded { add { Trace.WriteLine("Eventhandler added"); FavoriteAddedInternal += value; } remove { Trace.WriteLine("Eventhandler removed"); FavoriteAddedInternal -= value; } } public FavoriteManager() { FavoriteAdded += new FavoriteEventHandler(OnFavoriteAdded); FavoriteAdded += delegate(Favorite fav) { Trace.WriteLine("Favorite added: " + fav.Name); }; FavoriteAdded += (fav) => { Trace.WriteLine("Favorite added: " + fav.Name); }; } public void Add(string name, string url) { if (favs == null) { favs = new Favorite[] { new Favorite(name, new Uri(url)) }; } else { Favorite[] favs2 = new Favorite[favs.Length + 1]; Array.Copy(favs, favs2, favs.Length); favs2[favs.Length] = new Favorite(name, new Uri(url)); favs = favs2; } if (FavoriteAddedInternal != null) { FavoriteAddedInternal(favs[favs.Length - 1]); } } void OnFavoriteAdded(Favorite fav) { Trace.WriteLine("Favorite added: " + fav.Name); } }