泛型使用问题
我想这样,让一个方法,根据传入不同的值类型做不同的处理。 
 ------------------------------------------------------- 
    public   Tinput1   Compute <Tinput1,Tinput2> (Tinput1   t1,Tinput2   t2) 
                         { 
                                     if   (t1   is   int&&t2   is   int) 
                                     { 
                                                 t1   =   (int)t1; 
                                                 t2   =   (int)t2; 
                                                 t1   =   t1   +   t2; 
                                     } 
                                     else   if   (t1   is   string&&t2   is   string) 
                                     { 
                                                 t1   =   (string)t1; 
                                                 t2   =   (string)t2; 
                                                 t1   =   t1   +   t2; 
                                     } 
                                     else   if   (t1.GetType().IsSubclassOf(typeof(object))) 
                                     { 
                                                 this.b   =   t1.Equals(t2); 
                                                 t1   =   (bool)t1; 
                                                 t1   =   Convert.ToInt32(this.b); 
                                     } 
                                     return   t1; 
                         }   
 但是出现8个错误,不能t1   =   (int)t1;t2   =   (int)t2;t1   =   (string)t1;t1   =   t1   +   t2;等,那有什么办法   让它可以呢? 
------解决方案--------------------t1 = (int)t1; 
 t2 = (int)t2; 
 t1 = t1 + t2;   
 =====>    
 return (int)t1 + (int)t2;
------解决方案--------------------你的代码中都没用上泛型....你的方法实际上是 
 public object Compute(object t1,object t2);   
 不过是批一件没有意义的泛型的皮. 泛型的好处是把类型检查提前到了编译时,但是你在运行的时候执行了这么多的 is 啊强制转换啊.....   
 而且最后那个else逻辑明显有问题   
  t1 = (bool)t1; 
 从哪里让你觉得这个语句可以执行成功了? 
------解决方案--------------------你这种情况不要用泛型,用方法重载不管在执行效率上还是维护性上都更好