这段代码编译会错,书上也这么说,理由是,书上说,这段代码假定T支持==运算符。可是,我实在想不出来那个类型不支持==运算符。class AAA<T>
    {
        public int age;        public bool Compare(T t1, T t2)
        {
            if(t1 == t2)
            {
                return true;
            }
            return false;
        }
    }

解决方案 »

  1.   

    string str = "aa";
                int i = 1;
                if (str == i)
                { }
      

  2.   

    class   AAA <T> 
            { 
                    public   int   age;                 public   bool   Compare(T   t1,   T   t2) 
                    { 
                            if(t1.Equals(t2)) 
                            { 
                                    return   true; 
                            } 
                            return   false; 
                    } 
            } 
      

  3.   

    class   AAA <T> 
            { 
                    public   int   age;                 public   bool   Compare(T   t1,   T   t2) 
                    { 
                            if(t1.Equals(t2)) 
                            { 
                                    return   true; 
                            } 
                            return   false; 
                    } 
            } 
      

  4.   

    你这个比较怪异
    给你一个泛型的例子
    public class SqlFilter<T>
        {
            private string _name = null;        public string Name
            {
                get { return _name; }
            }        public SqlFilter(string name)
            {
                _name = name;
            }        public static SqlExpression operator ==(SqlFilter<T> t, T value)
            {
                SqlExpression _exp = new SqlExpression(string.Format("{0} = '{1}'", t.Name, value.ToString()));
                return _exp;
            }        public static SqlExpression operator !=(SqlFilter<T> t, T value)
            {
                SqlExpression _exp = new SqlExpression(string.Format("{0} <> '{1}'", t.Name, value.ToString()));
                return _exp;
            }        public override int  GetHashCode()
            {
              return base.GetHashCode();
            }
        }