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

发布于 2024-10-17 07:26:26 字数 315 浏览 2 评论 0原文

我正在使用这样的行:

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

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

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

谢谢

I am using a line like this:

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

to consume a method that returns a 2D System.Array with my stringArray variable. However stringArray = MyClassInstance.Work(...,... ...); is not filled with the return array of that function.

How should I define my collection variable so that it can be assigned to the return value of a method which returns a 2D System.Array string array value?

Thank you

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

溺渁∝ 2024-10-24 07:26:26

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

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

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

Array.CreateInstance returns an Array, without its dimension and length specified(but anyway it's an System.Array which is the base class of all arrays in C#). In most circumstances a return array from a method is more like:

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

string[] theStringResult = MyMethod();
int[,] theIntResult = Another(1);
栖迟 2024-10-24 07:26:26

在 2D 数组上:

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

这将返回一个 string[,] 转换为 Array。它与(Array)(new string[2,2])相同。因此,如果需要,您可以将其转换为 string[,]

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

关于您过度服务的问题:

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

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

On your 2D-Array:

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

This returns a string[,] cast to Array. It's identical to (Array)(new string[2,2]). So you can cast it to string[,] if you want.

But why do you want to use that anyways? Can't you just use a string[,] instead? Don't you know that the element type is string at compile-time? Perhaps make in a generic parameter.

On your overserved problem:

However stringArray = MyClassInstance.Work(...,... ...); is not filled with the return array of that function.

We can't help you with that part of the problem unless you post the code where it happens. It seems like the MyClassInstance.Work doesn't return the array instance you created. But unless you show the code with the bug I can't tell you where it is.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文