c# 的泛型,能不能用变量来代替 T ?

我定义了一个泛型类publicclassdatagridData<T>;同时定义了一个实体类publicclassclass1;在实例化的时候,写成datagridDat... 我定义了 一个泛型类 public class datagridData<T>;同时定义了一个实体类 public class class1;在实例化的时候,写成
datagridData<class1> o = new datagridData<class1>();可以正常运行。
现在我写成:string str="class1";
datagridData<str> o = new datagridData<str>();
就出错了,请问怎样才能用str变量 代替<>中的T 呢?
展开
 我来答
哲事姓无
2012-12-13 · TA获得超过1176个赞
知道小有建树答主
回答量:903
采纳率:100%
帮助的人:433万
展开全部
不能这么用的。泛型中的类型在编译时就要指定的。如果你需要使用字符串在运行时动态创建的话,需要作为参数传入。象下面这样

public object CreateInstance(stirng type)
{
var objType = Type.GetType(type);

retun System.Activator.CreateInstance(objType);

}

注意字符串类型要带命名空间,如System.DateTime之类的
更多追问追答
追问
http://zhidao.baidu.com/question/507015108.html?quesup2

这里我说得更明白,我该怎么做呢?
追答
已回答,不知道你的具体情况。你现在的解决方案,要添加就要增加两个类。比如一个class2,那就要再增加一个datagridData,推荐你如果可以的话实例类提取出接口的形式,然后datagridData类将接口对象或是实体类类型作为参数传入,这样datagridData只需要一个了每次增加只需要增加一个实体类就可以了。
QQ2k5
2012-12-13 · TA获得超过438个赞
知道小有建树答主
回答量:911
采纳率:25%
帮助的人:254万
展开全部
List<T>,T表示类型,泛型的意思是存储 T类型数据的数组
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bladray2
2012-12-13 · TA获得超过455个赞
知道小有建树答主
回答量:230
采纳率:0%
帮助的人:156万
展开全部
应该是这样吧
datagridData<string> o = new datagridData<string>();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-12-13
展开全部
datagridData<string> str = new datagridData<string>();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
护身法
2012-12-13
知道答主
回答量:16
采纳率:0%
帮助的人:7.5万
展开全部
datagridData<string> o = new datagridData<string>();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式