Как использовать метод, который возвращает 2d System.Array (не string[,]) в C#?
Я использую такую строку:
Array stringArray = Array.CreateInstance(typeof(String), 2, 2);
использовать метод, который возвращает 2D System.Array с моей переменной stringArray. Однако stringArray = MyClassInstance.Work(...,... ...); не заполнен возвращаемым массивом этой функции.
Как мне определить переменную моей коллекции, чтобы ее можно было присвоить возвращаемому значению метода, который возвращает значение строкового массива 2D System.Array?
Спасибо
2 ответа
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
во время компиляции? Возможно сделать в общем параметре.
По твоей чрезмерной проблеме:
Однако stringArray = MyClassInstance.Work(...,... ...); не заполнен возвращаемым массивом этой функции.
Мы не сможем помочь вам с этой частью проблемы, если вы не разместите код там, где это происходит. Кажется, что MyClassInstance.Work не возвращает созданный вами экземпляр массива. Но если вы не покажете код с ошибкой, я не могу сказать вам, где он находится.