c# - 创建未知类型的数组。 C#

标签 c# arrays reflection casting

在 C# 中使用反射时,您需要传递稍后转换的参数的对象 [],我有一个让用户输入参数值的图形用户界面。我知道它们是什么类型的输入预期输入、int、string、float、自定义对象的实例等...在参数是某种类型的数组的情况下,int[] foo[],它允许用户构造该类型的数组,并添加/删除元素。

我不知道如何使用这些信息(我知道数据的类型是类型 t。)我如何构造一个数组 t[],以便在调用它时,它可以转换到该数组类型。

例如,现在如果我有一个需要整数数组作为参数的函数,我目前正在传递一个对象[],其中包含另一个对象[],它里面充满了整数,但你不能只投object[] 到 int[] 所以调用失败。

我不能写一个 switch case,因为它不可能预测所有可能的类型(例如,在加载的 dll 中定义的其他类的实例)

最佳答案

你在找Array.CreateInstance吗?如果您只动态地 知道类型,那将很有用。如果您静态地知道它但在泛型方法中,您可以只使用 new T[10] 或任何类型参数名称。

关于c# - 创建未知类型的数组。 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5474163/

相关文章:

java - 如何从 Java 使用 Kotlin 反射

c# - 统一: Knockback my player

c# - 如何克隆从 C# 中的抽象类派生的类实例的通用列表?

C# for 或 foreach 从列表创建数组

python - 为什么 string.encode ('utf-8' ) != bytes(map(ord, string)) 是真的?

php - 如何按点对这个多维数组进行排序?

c - 如何为无符号整数设置默认值 "NULL"(例如 : NaN to floating points)?

java - Java反射中的构造函数类线程安全

Java - 获取原始数据类型的变量类型

c# - 带有可为空参数的 Type.InvokeMember