首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么正确应用范型返回值

2012-02-24 
如何正确应用范型返回值?关于这个函数,正确应用范型返回值,该如何修改?protected T AddT(T x){if (typeo

如何正确应用范型返回值?
关于这个函数,正确应用范型返回值,该如何修改?
protected T Add<T>(T x)
  {
  if (typeof(T) == typeof(Int16))
  {
  return (Int16.Parse(x) * 2);
  }

  if (typeof(T) == typeof(String))
  {
  return ((Int16.Parse(x) * 2).ToString());
  }
  }

[解决办法]
楼主想要的东西用泛型无法实现
泛型对应的类型有可能是任何类型,一般不参与运算、不使用其方法、属性的
即使加上where限定符,能做的操作也非常有限,目前看来,只当容器使用
[解决办法]
楼主的思路就错了,范型之所以是范型。就是在内部操作的时候不会在意他的实际类型。
楼主的方法就不应该支持String的传入。

protected T Add <T>(T x):int 

。。。
}

如果我没有记错的话,应该是这么写。
[解决办法]
一般范型都是用来传递接口,或者继承类的。在范型方法体中提供公用操作。

按楼主的方法的话,我穿一个 "abc"的字串,过来,无论走那个分支都是错的。但是从你外面暴露的接口来看没有问题。

热点排行