реализация оператора приведения в общем абстрактном классе

Я пытаюсь полениться и реализовать операторы приведения в абстрактном базовом классе, а не в каждом из производных конкретных классов. Мне удалось разыграть одну сторону, но я не могу разыграть другую. Я думаю, это может быть невозможно, но прежде чем сдаться, я хотел выбрать коллективный разум SO:

public interface IValueType<T>
{
    T Value{ get; set; }
}

public abstract class ValueType<T> : IValueType<T> {
    public abstract T Value { get; set; }
    public static explicit operator T(ValueType<T> vt) {
        if(vt == null)
            return default(T);
        return vt.Value;
    }

    public static implicit operator ValueType<T>(T val) {
        ValueType<T> vt = new ValueType<T>(); //<--- obviously this won't work as its abstract
        vt.Value = val;
        return vt;
    }
}
13
задан Richard Friend 10 May 2011 в 12:27
поделиться