簡體   English   中英

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

[英]How to consume a method that returns a 2d System.Array (not string[,]) in C#?

我正在使用這樣的一行:

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

消耗一個返回帶有我的stringArray變量的2D System.Array的方法。 但是stringArray = MyClassInstance.Work(...,... ...); 沒有填充該函數的返回數組。

我應該如何定義我的集合變量,以便可以將其分配給返回2D System.Array字符串數組值的方法的返回值?

謝謝

Array.CreateInstance返回一個Array ,沒有指定其維度和長度(但無論如何它是一個System.Array ,它是C#中所有數組的基類)。 在大多數情況下,方法的返回數組更像是:

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

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

在您的2D陣列上:

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

這會返回一個string[,]強制轉換為Array (Array)(new string[2,2]) 因此string[,]如果需要string[,]可以將其強制轉換為string[,]

但是你為什么要用它呢? 你不能只使用string[,]嗎? 難道你不知道元素類型在編譯時是string嗎? 也許用一個通用參數。

關於你的服務過度問題:

但是stringArray = MyClassInstance.Work(...,... ...); 沒有填充該函數的返回數組。

除非您將代碼發布到發生的位置,否則我們無法幫助解決問題的這一部分。 看起來MyClassInstance.Work不會返回您創建的數組實例。 但除非你用錯誤顯示代碼,否則我無法告訴你它在哪里。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM