【问题标题】:Convert C# Type to the type of an array of type将 C# Type 转换为类型数组的类型
【发布时间】:2016-10-29 10:21:38
【问题描述】:

我需要类型变量中给定类型的 n 个元素的数组的类型。 我正在解决这样的问题:

Type foo;
int n;

Type newType=(Array.CreateInstance(foo,n)).GetType();

这可行,但这确实意味着我实际上是在创建一个未使用的数组来获取它的类型。我相信一定有更好的方法!

【问题讨论】:

  • 您确定需要将“项目类型”作为Type 实例获取吗?也许您可以改用泛型类,然后只做TFoo[]?这只是一个想法,这完全取决于你的整个类型系统是如何构建的:)

标签: c# arrays types


【解决方案1】:

你可以使用Type.MakeArrayType():

Type foo = typeof(Foo);
Type arrayType = foo.MakeArrayType();

这将返回Foo 的一维数组的Type。数组的length 与类型无关。

对于多维数组可以使用this overload

Type foo = typeof(Foo);
int dimensions = 5;
Type arrayType = foo.MakeArrayType(dimensions);

【讨论】:

  • foo.MakeArrayType() 正是我所需要的。谢谢。
猜你喜欢
  • 2014-02-04
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-27
相关资源
最近更新 更多