Как использовать метод, который возвращает 2d System.Array (не string [,]) в C #? - PullRequest
0 голосов
/ 13 февраля 2011

Я использую такую ​​строку:

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

для использования метода, который возвращает 2D System.Array с моей переменной stringArray . Однако stringArray = MyClassInstance.Work (..., ... ...); не заполнен возвращаемым массивом этой функции.

Как определить переменную моей коллекции, чтобы ее можно было присвоить возвращаемому значению метода, который возвращает значение массива строк 2D System.Array?

Спасибо

Ответы [ 2 ]

2 голосов
/ 13 февраля 2011

Array.CreateInstance возвращает Array без указания его размера и длины (но в любом случае это System.Array, который является базовым классом всех массивов в C #).В большинстве случаев возвращаемый массив из метода больше похож на:

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

string[] theStringResult = MyMethod();
int[,] theIntResult = Another(1);
0 голосов
/ 13 февраля 2011

На вашем 2D-массиве:

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

Возвращает string[,] приведение к Array. Это идентично (Array)(new string[2,2]). Так что вы можете привести его к string[,], если хотите.

Но почему вы хотите использовать это в любом случае? Разве вы не можете просто использовать string[,] вместо этого? Разве вы не знаете, что тип элемента string во время компиляции? Возможно, сделайте в общем параметре.

По вашей чрезмерной проблеме:

Однако stringArray = MyClassInstance.Work (..., ... ...); не заполнен возвращаемым массивом этой функции.

Мы не сможем помочь вам с этой частью проблемы, если вы не разместите код там, где это происходит. Кажется, что MyClassInstance.Work не возвращает созданный вами экземпляр массива. Но если вы не покажете код с ошибкой, я не могу сказать вам, где он находится.

...