using System; using System.Diagnostics; public class FavoriteManager { Favorite[] favs; public delegate void FavoriteEventHandler(Object sender, FavoriteEventArgs e); public event FavoriteEventHandler FavoriteAdded; public FavoriteManager() { FavoriteAdded += new FavoriteEventHandler(OnFavoriteAdded); FavoriteAdded += delegate(Object sender, FavoriteEventArgs e) { Trace.WriteLine("Favorite added: " + e.RelatedFavorite.Name); }; FavoriteAdded += (sender, e) => { Trace.WriteLine("Favorite added: " + e.RelatedFavorite.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 (FavoriteAdded != null) { FavoriteAdded(this, new FavoriteEventArgs(favs[favs.Length - 1])); } } void OnFavoriteAdded(Object sender, FavoriteEventArgs e) { Trace.WriteLine("Favorite added: " + e.RelatedFavorite.Name); } }