Comment consommer une méthode qui renvoie un système 2D.array (pas string [,]) en c #?
-
13-11-2019 - |
Question
J'utilise une ligne comme ceci:
Array stringArray = Array.CreateInstance(typeof(String), 2, 2);
pour consommer une méthode qui renvoie un système 2D. stringarray variable. Cependant stringArray = myClassInstance.Work (..., ... ...); n'est pas rempli du tableau de retour de cette fonction.
Comment dois-je définir ma variable de collecte afin qu'elle puisse être attribuée à la valeur de retour d'une méthode qui renvoie un système 2D.Array la valeur de tableau de chaîne?
Merci
La solution
Array.CreateInstance
retourne un Array
, sans sa dimension et sa longueur spécifiées (mais de toute façon c'est un System.Array
qui est la classe de base de tous les tableaux en C #). Dans la plupart des cas, un tableau de retour d'une méthode ressemble plus à:
public string[] MyMethod()
{
}
public int[,] Another(int something)
{
}
string[] theStringResult = MyMethod();
int[,] theIntResult = Another(1);
Autres conseils
Sur votre 2D-array:
Array.CreateInstance(typeof(String), 2, 2);
Cela renvoie un string[,]
couler Array
. C'est identique à (Array)(new string[2,2])
. Pour que vous puissiez le lancer à string[,]
si tu veux.
Mais pourquoi voulez-vous l'utiliser de toute façon? Ne pouvez-vous pas simplement utiliser un string[,]
Au lieu? Ne savez-vous pas que le type d'élément est string
au temps de compilation? Peut-être faire dans un paramètre générique.
Sur votre problème sur place:
Cependant stringArray = myClassInstance.Work (..., ... ...); n'est pas rempli du tableau de retour de cette fonction.
Nous ne pouvons pas vous aider avec cette partie du problème, sauf si vous postez le code où cela se produit. Il semble que MyClassInstance.Work ne renvoie pas l'instance de tableau que vous avez créée. Mais à moins que vous ne montriez le code avec le bug, je ne peux pas vous dire où il se trouve.