C#,关于反射滴一个问题……

C#,关于反射滴一个问题……

  • 云端漫步者 2014-10-23 10:16
  • 收藏问题 ( 0人收藏 )
  • 举报

你的IE浏览器版本过低,为了提升体验,

建议升级到IE10以上或使用Chrome、搜狗等浏览器!

5个答案
  • 苏苏126136 2014-10-23 10:45
    未知类型变量ASystem.Type type =A.GetType();type B=null;好像是这么写!
  • shuichangrong 2014-10-23 10:42
    | c#好像有个typeof方法的吧?这个可以返回对象所属的类型。
  • hymjj8558 2014-10-23 10:34
    楼上的代码有点小错误..type t = A.GetType();B = Activator.CreateInstance(t, null);此时的B是一个Object对象.你需要对其进行一个类型转换.才可以正确的使用一般来说如果已知A的类型为classA.代码中应该这么写type t = A.GetType();classA B = Activator.CreateInstance(t, null) as classA;但是你的问题中写的是一个未知类型...所以你也不可能知道classA的名字.所以这断代码你怎么办都不能使用.思考楼主的问题.应该是延后绑定之类的问题.像这样的情况一般都会开放一个接口.然后变量A会去继承这个接口.比如说IclassA.这样的话.不管变量A是哪个类型.我只要写如下的代码type t = A.GetType();IclassA B = Activator.CreateInstance(t, null) as IclassA;都可以调用IclassA里定义的方法了.
  • lglg 2014-10-23 10:29
    | 如果你用的.net 4.0 那么直接用dynamic生命变量B;如果不是.net 4.0,那就直接用object声明,然后强转成你需要的类型。不知道类型,就不知道该做什么、怎么做。
  • 信念110910 2014-10-23 10:25
    | 可以这样,Type t = A.GetType(); B = Activator.CreateInstance(t, null);不过,你都不知道A的类型,写这段代码有什么意义呢,连类型都不知道,你怎么用呢?