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)
{
return new HttpCookie(...);
}
}