【发布时间】:2011-10-29 18:38:35
【问题描述】:
我有一个对象,其中包含 任何类型的数组(不是先验已知的类型。所以我不能在代码中进行简单的转换,因为我可以在运行时确定类型!)。如何提取数组的内容? 例如:
int[] array = new int[] { 0, 1, 2 };
object obj=array;
...
//Here I know that obj is an array (<b>of a priory unknown type and I cannot use type conversion in the code </b>
//How can extract elements of obj and use them, e.g. write them on the screen?`
【问题讨论】:
-
你问这个问题有真实的理由吗?
-
未知的对象类型。例如,考虑我要检查未知对象的内容。我知道如何提取它的领域。如果该领域是一个简单的领域,我可以简单地使用它。但是当它是一个数组的时候呢?
-
@Akhir 听起来您需要查询类型。在对象上调用
.GetType()以获取类型信息,然后您可以使用typeof将其与已知类型进行比较,请参阅下面的答案。 -
@Adam Houldsworth:是的,但问题是我不知道类型是“int”。就像 Visual Studio 向您显示对象的内容时不知道其类型的先验一样。事实上,它首先确定类型,然后显示内容。
-
@Akhir 这就是为什么你在尝试使用它之前测试类型。您知道它可能是什么类型,因此您可以测试您感兴趣的类型。如果您希望能够处理所有可能的类型,那么了解将解决什么问题可能会有所帮助。