List 中的T能否动态生成

linuxbilly 2011-04-01 02:36:37
请问 List<T>中的T是不是一定要指明一种特定的类型
比如 List<string> List<int>

我遇到的问题是,需要用到List容器,但是类型可能得到运行时才能确定,比如运行时才通过参数知道需要用到的是string或是int类型的List容器
难道要用List<object> 来做转换?
...全文
2327 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
dingon_yeah_net 2012-06-06
  • 打赏
  • 举报
回复
学习中。。。。
bugers 2011-04-18
  • 打赏
  • 举报
回复
来看答案的
田七一号 2011-04-07
  • 打赏
  • 举报
回复
能的,在编程思想上看过.
Hamber_Bao 2011-04-06
  • 打赏
  • 举报
回复
[Quote=引用 28 楼 wjb_yd 的回复:]
额, 你这个需求让编译器情何以堪~
[/Quote]

呵呵
wanyyl2353406 2011-04-06
  • 打赏
  • 举报
回复
看看c++ Primer上关于句柄的内容,会有你要的答案的。楼主用句柄封装你要的多态的效果
JAVIYLEE 2011-04-05
  • 打赏
  • 举报
回复
如果楼主想的是遍历不同类型的集合 可以用这个例子:
public class Test{
public static void main(String args[]){
Test t=new Text();
List<String> lis=new ArrayList<String>();
lis.add("abc");
lis.add("efg");
t.overview(lis);
List<Integer> lii=new ArrayList<Integer>();
lii.add(1000);
lii.add(2000);
t.overview(lii);
}
public void overview(List<?> li){
for(Object o:li){
System.out.println(li);
}
}
}
JAVIYLEE 2011-04-05
  • 打赏
  • 举报
回复
使用通配符<?> 例子:
public class Test{

}

镜花水月73 2011-04-04
  • 打赏
  • 举报
回复
不一定要制定,需要一个接口
wenlin56 2011-04-04
  • 打赏
  • 举报
回复
楼主的问题可以这样解决:
定义一个父类:
public abstract class SimpleDao<T> {

}
子类传入实际泛型:
public class SimplDaoImpl extends SimpleDao<User user> {

}
wjb_yd 2011-04-03
  • 打赏
  • 举报
回复
额, 你这个需求让编译器情何以堪~
meixqhi 2011-04-03
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 jlk11640 的回复:]
List<T>本身T就是在实例化的时候才确定的。。。
[/Quote]
纠正一下错误,T是在编译时就确定的,如果T不指定,就会发生类型擦除,即编译后T被换成Object。
ross_ 2011-04-03
  • 打赏
  • 举报
回复
16楼正解
DSIOF3KIDSKTR 2011-04-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 maddemon 的回复:]
List<dynamic>
[/Quote]
对,可以用Dynamic,不过要.NET Framwork 4.0才可以
linuxbilly 2011-04-02
  • 打赏
  • 举报
回复
谢谢各位指导
ktei2008 2011-04-02
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 mgenx 的回复:]

LZ说的完全可以实现,先用typeof得到一个泛型类的定义,然后用MakeGeneric来将类型值具体化,最后CreateInstance,完成动态创建一个泛型类的实例。
如下代码,动态创建两个int和string的List<T>,并加入相应数据。
C# code

static void Main()
{
List<int> int……
[/Quote]
高手,学习了
  • 打赏
  • 举报
回复
路过,学习了。。。
anran800 2011-04-01
  • 打赏
  • 举报
回复
反射来实现了!!!
anran800 2011-04-01
  • 打赏
  • 举报
回复
嗯,16楼回答的很好啊
a513264420 2011-04-01
  • 打赏
  • 举报
回复
学习了,呵呵!!
大Y 2011-04-01
  • 打赏
  • 举报
回复
学习了,
加载更多回复(18)

110,556

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧