如何使用在C#中返回2d System.Array(不是字符串[,])的方法?

时间:2011-02-13 06:52:06

标签: c# .net string system.array

我正在使用这样的一行:

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

使用一个返回带有 stringArray 变量的2D System.Array的方法。但是stringArray = MyClassInstance.Work(...,......);没有填充该函数的返回数组。

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

谢谢

2 个答案:

答案 0 :(得分:2)

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

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

string[] theStringResult = MyMethod();
int[,] theIntResult = Another(1);

答案 1 :(得分:0)

在您的2D阵列上:

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

这会将string[,]广告投放回Array。它与(Array)(new string[2,2])相同。因此,如果您愿意,可以将其投射到string[,]

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

关于你的服务欠缺问题:

  

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

除非您将代码发布到发生的位置,否则我们无法帮助解决问题的这一部分。看起来MyClassInstance.Work不会返回您创建的数组实例。但除非你用错误显示代码,否则我无法告诉你它在哪里。