首页 新闻 会员 周边 捐助

C# 如何获取变量类型,并定义这个类型的变量?

0
[已解决问题] 解决于 2018-03-29 08:19

比如有个变量:param ,为string类型

如果根据或得的变量再定义一个变量:param2?

Cornelius的主页 Cornelius | 初学一级 | 园豆:80
提问于:2013-10-28 16:49
< >
分享
最佳答案
0

1、此变量类型是否支持ICloneable,如果支持的话,可以使用 param.clone得到一个新的变量。

2、如果不支持的话,就需要用到反射,

    a. dim myType as type=gettype(param)

    b. 使用反射 activator.createinstance 可以创建类型为MyType的新实例。

奖励园豆:5
爱编程的大叔 | 高人七级 |园豆:30844 | 2013-10-28 17:58

使用a,还是b,?只用a吗?

Cornelius | 园豆:80 (初学一级) | 2013-10-28 18:33

记得 dim 是VB里定义变量的。

有C#版的不?var myType as type

Cornelius | 园豆:80 (初学一级) | 2013-10-28 18:38

@Cornelius: 问题是这种也会有问题,如果这个类根本就没有公开的构造函数的话,是无法创建的。

空明流光 | 园豆:111 (初学一级) | 2013-10-29 10:11

@Cornelius: 

C#版的是

Type myType=param.gettype();

object newObject=activator.createinstance(mytype);

爱编程的大叔 | 园豆:30844 (高人七级) | 2013-10-29 10:30
其他回答(7)
0

string param = 1;

string param2 = param;

这样 ??????

hpze2000 | 园豆:109 (初学一级) | 2013-10-28 16:51
0

没看懂,请详细说明

项权 | 园豆:8 (初学一级) | 2013-10-28 17:20

这是获取 变量 的类型了,怎么根据这个获取的类型定义变量呢?

string aa = "mystr”;

Type type = typeof(aa);

type cc = new type/////这里要怎么写?

支持(0) 反对(0) Cornelius | 园豆:80 (初学一级) | 2013-10-28 18:32
0

typeof(变量)

jerry-Tom | 园豆:4077 (老鸟四级) | 2013-10-28 17:27

这是获取 变量 的类型了,怎么根据这个获取的类型定义变量呢?

string aa = "mystr”;

Type type = typeof(aa);

type cc = new type/////这里要怎么写?

支持(0) 反对(1) Cornelius | 园豆:80 (初学一级) | 2013-10-28 18:32

@Cornelius: type cc = new type();这或许会更正确点吧。

支持(0) 反对(1) 兰淅 | 园豆:212 (菜鸟二级) | 2013-12-19 10:31
0

T Copy<T>(T obj):where T : new()

{

  T obj2=new T();

  return obj2;

}

空明流光 | 园豆:111 (初学一级) | 2013-10-29 10:15

代码未经测试,但这种方式绝对可行,以前用过的

支持(0) 反对(0) 空明流光 | 园豆:111 (初学一级) | 2013-10-29 10:16

@沧海一杰: 去掉函数声明的第一个冒号

支持(1) 反对(0) 空明流光 | 园豆:111 (初学一级) | 2013-10-29 10:17

@沧海一杰: 怎么用这个定义新变量呢

支持(0) 反对(0) 司徒灬不祗寂寞 | 园豆:200 (初学一级) | 2014-06-23 10:33
0

activator.createinstance 

平常心队长 | 园豆:1113 (小虾三级) | 2013-10-29 14:20
0

var a=1;(根据你的输入来)

var b=a;

rize | 园豆:217 (菜鸟二级) | 2013-10-31 16:26
0

假如有个变量:

String str="Messages";

Type ty=a.GetType();

MessageBox.Show(ty.ToString());

结果是System.String

您是想要这个吗?

seaconch | 园豆:4823 (老鸟四级) | 2013-11-01 13:40

不是

支持(0) 反对(0) lanboss | 园豆:204 (菜鸟二级) | 2015-07-12 20:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册