¿Es posible en C # sobrecargar a un operador genérico de la siguiente manera?

Solo me pregunto si hay alguna forma de representar el siguiente código en C # 3.5:

<code>public struct Foo<T> {

    public Foo(T item) {
        this.Item = item;
    }

    public T Item { get; set; }

    public static explicit operator Foo<U> ( Foo<T> a )
        where U : T {

        return new Foo<U>((U)a.Item)
    }
}
</code>

Gracias

Respuestas a la pregunta(3)

Su respuesta a la pregunta