日期:2014-05-17  浏览次数:20811 次

求助 关于 操作符重载的
为什么我重载了System.Type的大于操作符
在同一个类中 却无法使用呢?

public static class OperatorTest
{
        public static bool operator >(Type typeSource, Type typeTarget)
        {
            if (typeTarget.IsAssignableFrom(typeSource)) return true;
            return false;
        }
        public static bool operator >=(Type typeSource, Type typeTarget)
        {
            //typeSource > typeTarget报错了
            return typeSource > typeTarget || 
                   typeTarget == typeSource;
        }
}


------解决方案--------------------
C#下,不能在目标类外面,定义它的操作符。
------解决方案--------------------
你又没给Type重载运算符,当然不能Type类型比较了

 public static bool operator >(OperatorTest typeSource, OperatorTest typeTarget)
        {
            if (typeTarget.IsAssignableFrom(typeSource)) return true;
            return false;
        }
        public static bool operator >=(OperatorTest typeSource, OperatorTest typeTarget)
        {
            typeSource > typeTarget报错了
            return typeSource > typeTarget 
------解决方案--------------------

                   typeTarget == typeSource;
        }
------解决方案--------------------
不要是静态类,?typeSource 要是你定义的类型