Domanda

Sto usando una riga come questa:

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

per consumare un metodo che restituisce un sistema 2D.array con il mio StringArray variabile. Tuttavia StringArray = myClassInstance.work (..., ... ...); non è riempito con l'array di ritorno di quella funzione.

Come dovrei definire la mia variabile di raccolta in modo che possa essere assegnata al valore di ritorno di un metodo che restituisce un valore di array di stringa 2D?

Grazie

È stato utile?

Soluzione

Array.CreateInstance Restituisce un Array, senza la sua dimensione e lunghezza specificata (ma comunque è un System.Array che è la classe base di tutti gli array in C#). Nella maggior parte dei casi un array di ritorno da un metodo è più simile:

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

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

Altri suggerimenti

Sul tuo array 2D:

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

Questo restituisce a string[,] cast a Array. È identico a (Array)(new string[2,2]). Quindi puoi lanciarlo a string[,] se vuoi.

Ma perché vuoi usarlo comunque? Non puoi semplicemente usare un string[,] invece? Non sai che il tipo di elemento è string al tempo di compilazione? Forse fare in un parametro generico.

Sul tuo problema eccessivo:

Tuttavia StringArray = myClassInstance.work (..., ... ...); non è riempito con l'array di ritorno di quella funzione.

Non possiamo aiutarti con quella parte del problema a meno che non pubblichi il codice dove accade. Sembra che myclassinstance.work non restituisca l'istanza dell'array che hai creato. Ma a meno che tu non mostri il codice con il bug, non posso dirti dov'è.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top