请教一个问题,关于如何区分T和List<T>
本帖最后由 niss 于 2013-04-08 20:56:12 编辑
有一个方法:
public T method<T>()
{
}
我怎么才能够限制这个T不可以是诸如List<T>,IList<T>,T[],IDictionary<T,T>这种集合类型?
比如不允许调用方这么用:method<List<T>>()
------解决方案--------------------泛型约束达不到你的要求,他只能指明继承与谁,而不能限制不继承谁
所以你的在方法体里面自己判定
T xxx<T>(T obj)
{
if (obj is IEnumerable)
{
throw new ArgumentException("参数无效");
}
return obj;
}