Estoy probando el siguiente código. Se señala la línea con el error.
int[] myfunction()
{
{
//regular code
}
catch (Exception ex)
{
return {0,0,0}; //gives error
}
}
¿Cómo puedo devolver un literal de matriz como literales de cadena?
const
campos. Este no es el caso de la sintaxis de inicialización de matrices.Respuestas:
Devuelve una matriz
int
como esta:return new int [] { 0, 0, 0 };
También puede escribir implícitamente la matriz ; el compilador inferirá que debería ser
int[]
porque contiene soloint
valores:return new [] { 0, 0, 0 };
fuente
new int [] {0,0,0}
también funciona. Sería más claro en mi opinión.Blorgbeard es correcto, pero también podría pensar en usar la nueva clase Tuple de .NET 4.0. Descubrí que es más fácil trabajar cuando tienes una cantidad determinada de artículos para devolver. Como si siempre necesita devolver 3 elementos en su matriz, una tupla de 3 int deja en claro de qué se trata.
return new Tuple<int,int,int>(0,0,0);
o simplemente
return Tuple.Create(0,0,0);
fuente
return new List<int>(new int[]{0,0,0});
List<int>(Enumerable.Repeat(0, 3))
sería mejor?si la matriz tiene un tamaño fijo y desea devolver una nueva llena de ceros
return new int[3];
fuente