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(...);
    }
}