April 2009 Blog Posts

"Subclassing" attraverso l'overload di cast implicito

Si immagini di voler creare una versione specializzata di cookie MyCookie. La scelta più intuitiva è quella di scrivere una classe MyCookie che eredita da System.Web.HttpCookie public class MyCookie : System.Web.HttpCookie { // ... }   per poi usarla in questo modo MyCookie cookie = new MyCookie(); Response.Cookies.Add(cookie);   Purtroppo HttpCookie è sealed e quindi non estendibile. Volendo preservare la precedente sintassi, è tuttavia possibile creare una sorta di "subclassing" facendo l'overload dell'operatore di cast implicito da MyCookie a HttpCookie. Questo consente di utilizzare MyCookie laddove è richiesta una istanza di HttpCookie. public class MyCookie { public static implicit operator HttpCookie(MyCookie cookie) { ...

posted @ Tuesday, April 7, 2009 11:13 PM | Feedback (1)