none
求教,如何通过类型名称获取该类型,而不是该类型对象! RRS feed

  • 问题

  • 例如:

    ClassTest  ct=new ClassTest();

    Ojbect oj=ct;

    Type type=oj.GetType();

    这个时候,我新声明一个ClassTest对象,想将oj赋给它,但不能直接使用ClassTest进行强制转换,这个时候应该如何动态地获取到ClassTest或者说相应的类类型

    Class newCt= oj  ??

    2015年10月14日 2:53

全部回复

  • 声明类型的时候,就用到类型名了啊。

    你最后需要的newCt的类型应该是ClassTest. 

    ClassTest newCt = oj as ClassTest;

    既然声明用到了,那么强制类型转换,或者as 运算符都可以使用了。

    用Convert.ChangeType(oj, oj.GetType()); 这个API可以转型,但是返回的结果还是Object类型的,赋给ClassTest 类型的变量还是需要转型。


    2015年10月14日 3:51
  • 假设,现在只有一个object,

    在不知道其强制转转换的类型的情况下(只有一个类型名称),应该如何进行转型呢?(并不确定是ClassTest,假如用Type.FullName判断的话,在类型很多且不断增加的情况下,会导致很麻烦)

    疑问:既然在现有的Type对象的情况下,可以通过反射来创建一个对应类型的的object对象,为什么不能直接创建Type对象所存储的类型的相应对象呢?

    最后得到ClassTest newCt

    2015年10月14日 5:10
  • >> 在不知道其强制转转换的类型的情况下(只有一个类型名称),应该如何进行转型呢?(并不确定是ClassTest,假如用Type.FullName判断的话,在类型很多且不断增加的情况下,会导致很麻烦)

    不知道就没法转啊。这种情况下,你应该设计一个继承体系,在声明对象的时候用父类或者接口来声明, 实例化的时候调用子类的构造函数。


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年10月15日 6:28
  • 明白你的意思不过这个也需要进行判断的,假如一个接口被n个类继承了,这个情况下如何处理?又回到了原点了
    2015年10月15日 16:10
  • 你能详细解释一下需求吗? 我觉得是不是应该在设计模式上下功夫?

    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年10月16日 2:50