相关疑难解决方法(0)

在通用抽象类中实现强制转换操作符

我试图变得懒惰并在抽象基类中实现转换运算符,而不是在每个派生的具体类中实现.我已经成功地投了一条路,但是我无法施展另一条路.我认为这可能是不可能的,但是在放弃之前想要选择集体的思想:

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# generics abstract-class operator-keyword

13
推荐指数
1
解决办法
4015
查看次数

标签 统计

abstract-class ×1

c# ×1

generics ×1

operator-keyword ×1