当前位置: 代码迷 >> C# >> 泛型类型的重载操作符,该怎么解决
  详细解决方案

泛型类型的重载操作符,该怎么解决

热度:97   发布时间:2016-05-05 04:08:30.0
泛型类型的重载操作符
本帖最后由 wodeceshi 于 2015-04-16 00:54:53 编辑
小弟想重载泛型的记录类型操作符,不知道该怎么做,求帮助!!


Class Test<T>
{
    public static bool operator > (T left, T right)//提示“二元运算符的参数之一必须是包含类型”错误。。。
    {
    ......
    }

    public void tt()
    {
        T a,b;
        if( a > b)    //想重载了以后直接用操作符比较记录类型
        {
        ......
        }
    }
}

------解决思路----------------------
“想重载了以后直接用操作符比较记录类型”

这可是典型的“空想”。既然 T 不过是个模板名词儿,它就无法具体去编译什么代码。只有 Test<T> 才是可以编译的。
------解决思路----------------------
比较重载只能是当前类,怎么可能给泛型T做operator 呢,如果你真要这么做,你应该是定义一个比较的接口
  相关解决方案