0

我正在使用这样的一行:

Array stringArray = Array.CreateInstance(typeof(String), 2, 2);

使用返回 2D System.Array 和我的stringArray变量的方法。然而 stringArray = MyClassInstance.Work(...,... ...); 没有填充该函数的返回数组。

我应该如何定义我的集合变量,以便可以将其分配给返回 2D System.Array 字符串数组值的方法的返回值?

谢谢

4

2 回答 2

2

Array.CreateInstance返回一个Array,没有指定它的维度和长度(但无论如何它System.Array是 C# 中所有数组的基类)。在大多数情况下,方法的返回数组更像:

public string[] MyMethod()
{
}
public int[,] Another(int something)
{
}

string[] theStringResult = MyMethod();
int[,] theIntResult = Another(1);
于 2011-02-13T07:03:03.710 回答
0

在您的二维阵列上:

Array.CreateInstance(typeof(String), 2, 2);

这将string[,]强制转换为Array. 它与 相同(Array)(new string[2,2])。因此,您可以根据string[,]需要将其转换为。

但是你为什么要使用它呢?你不能只用 astring[,]代替吗?你不知道元素类型是string在编译时的吗?也许在一个通用参数中。

关于您服务过度的问题:

然而 stringArray = MyClassInstance.Work(...,... ...); 没有填充该函数的返回数组。

除非您在发生问题的地方发布代码,否则我们无法帮助您解决这部分问题。似乎 MyClassInstance.Work 没有返回您创建的数组实例。但是除非你显示带有错误的代码,否则我无法告诉你它在哪里。

于 2011-02-13T09:50:02.553 回答