超难的反射问题

XphteR 2009-03-14 06:13:01
问题:
如何使用发射在运行时获取数组对象的定义元素类型?
例如:
public class A {}
public class B : A {}
public A[] array = new A[] { new B(),new B() };
如何在运行时获取对象array定义的元素类型?目前的暂时办法是通过数组类型间接获取定义的元素类型:
elementType = Type.GetType(array.GetType().AssemblyQualifiedName.Replace("[]",String.Empty));

我的邮箱:Xphter@163.com,请教各位大虾了 :D
...全文
114 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shiboss 2009-03-15
  • 打赏
  • 举报
回复
同意楼上
XphteR 2009-03-15
  • 打赏
  • 举报
回复
我不常来这里,不太明白这里的规矩,望见凉。希望高手解答一下这个难题 :D
XphteR 2009-03-15
  • 打赏
  • 举报
回复
经测试,orain正解。
XphteR 2009-03-15
  • 打赏
  • 举报
回复
谢谢orain!
cppfaq 2009-03-15
  • 打赏
  • 举报
回复
结贴率太低~~~
foreach (A a in array ?? new A[0])
{
Console.WriteLine(a.GetType());
}




orain 2009-03-15
  • 打赏
  • 举报
回复
public A[] array = new A[] { new B(),new B() };
Type elementType = array.GetType().GetElementType();
  • 打赏
  • 举报
回复
结贴率太低~~~

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧