问题描述
stringstr_type="int";str_typeobject_NewValue;这里"int"也可能是其他类型怎么实现?
解决方案
解决方案二:
不是很明白你的意思
解决方案三:
不明白学习下
解决方案四:
stringstr_type=(string)"int";
解决方案五:
呃...
解决方案六:
Typet=Type.gettype("int");
解决方案七:
你是说吧字符串转化成关键字对吗?这个有点困难等待一下高手
解决方案八:
呃..这是什么语言的写法?
解决方案九:
如果是.netframework3.5,并且是局部变量,可以用var关键字,由编译器动态决定其真实类型,但这与楼主要求也相差很多。个人认为在强类型的语言中,这种想法是不能实现的。关注楼下解答。
解决方案十:
好像没有这种做法要不你自己去定义一些class,或者定义一些类型有一个猜想是否你想要枚举
解决方案十一:
明白楼主的意思的了,我最近有个地方也想这样,不知道如何实现我想有“abc”,"i"我想生成sw.WriteLine("abc"+i.ToString())
但不知道如何把"i"变为i,和楼主的一个意思!同问!
解决方案十二:
学习哈
解决方案十三:
stringstr_type="System.Int32";Typetype=Type.GetType(str_type);objectobject_NewValue=Activator.CreateInstance(type);
解决方案十四:
flash里有eval,但是c#里,好像不行
解决方案十五:
是不是在c++中的define,定义别名吧,c#中str_typeobject_NewValue;
好像不行definetype_intint;
看看下面这段可以实现你要的效果吗stringtype_int="System.Int32";Typetype=Type.GetType(type_int,true,true);objecta=0;intb=(int)Activator.CreateInstance(type);MessageBox.Show(b.ToString());
解决方案:
关键字、类型是编译时的概念字符串是运行时的概念楼主先补补基本概念吧~
解决方案:
引用5楼ojekleen的回复:
Typet=Type.gettype("int");
这个也可以吗?真不错,学习了一下,有空试一下。如果不可以,楼主大可以,这样做一些ifelsetry{if(str_type=="int")你要转换的变量=convert.toint32();//强行转换。if(str_type=="string")你要转换的变量=convert.tostring();//强行转换。....else//没有你输入的类型;}catch{//转换出错,数据有误}呵呵,方法笨,但就那么几种类型。也无所谓。当然有那位兄弟说的方法更好了。
解决方案:
没看明白。。不过先顶一个
解决方案:
第一种:简单的可以直接转换第二种:如果你也可以使用object转换第三:重点是你要让别人知道你所做的是什么事情!
解决方案:
没看明白convert
解决方案:
Typestr_type=Type.GetType("System.Int32",false,true);objectobject_NewValue=Activator.CreateInstance(str_type,true);
解决方案:
Typetype=Type.GetType("int",false,true);objectobject_NewValue=Activator.CreateInstance(type,true);
这种需求,一般都是前期没设计好导致的。如果架构合理的话根本不需要这样。
解决方案:
引用20楼shinaterry的回复:
C#codeTypestr_type=Type.GetType("System.Int32",false,true);objectobject_NewValue=Activator.CreateInstance(str_type,true);
解决方案:
强制类型转换,不可以么?LZ试试吧
解决方案:
stringstr_type="System.Int32";Typetype=Type.GetType(str_type);objectobject_NewValue=Activator.CreateInstance(type);
解决方案:
这种的情况,用泛型比较合适!可以根据你的需要确定类型!
解决方案:
没理解你的意思你想干嘛呢
解决方案:
引用12楼hbxtlhx的回复:
C#codestringstr_type="System.Int32";Typetype=Type.GetType(str_type);objectobject_NewValue=Activator.CreateInstance(type);
这个可行,学习了声明了object_NewValue之后,赋值时候却可以赋intstingbool等类型均不会报错,且不能调用相关类型的方法,感觉这个方法还是有点其他需要考虑的地方的
解决方案:
没见过这样用法
解决方案:
另:楼主的本意好像自己没表达清楚估计是想在代码运行时自动判别类型、声明变量但借某楼上的话,还是要分清运行时和编译时。
解决方案:
引用12楼hbxtlhx的回复:
C#codestringstr_type="System.Int32";Typetype=Type.GetType(str_type);objectobject_NewValue=Activator.CreateInstance(type);
解决方案:
stringstr_type="int";str_typeobject_NewValue;str_type是一个变量,你不能用一个变量去作为另一个变量(object_NewValue)的类型定义;
解决方案:
有点奇怪的写法,第一次看到
解决方案:
这个厉害啊。。。你在定义关键字??
解决方案:
没明白
解决方案:
反射?