Estoy haciendo un codigo de practica (se que se puede pulir y no haria ni falta el for
con switch
), el problema es que como lo mostrare a continuacion (Con codigo de otros calculos que no incluyo) me lanza una excepcion del tipo System.NullReferenceException
y no entiendo porque me guarda el primer dato y el segundo no. Tambien modifique el codigo para ver como continuaba, y en el for del 3er caso del case, me coloca el indice 4 y me lanza
OutOfRangeException
.
private string[,] Totales = new string[2, 4]; //Arreglo
public string[,] GS_Totales { get; set; } //propiedad
public void CalcularResultados()
{
int Acumulador = 0;
for (int j = 0; j < Totales.LongLength; j++)
{
switch (j)
{
case 0:
{
GS_Totales[0, 0] = "Medallas por victorias";
GS_Totales[1, 0] = Convert.ToString(GS_Victorias * GS_MedallasPorVictorias);
//LANZA EXEPCION ACA Y SEGURAMENTE EN LAS PARTES SIGUIENTES SI PUDIERA CONTINUAR
break;
}
case 1:
{
GS_Totales[0, 1] = "Medallas por estrellas obtenidas";
GS_Totales[1, 1] = Convert.ToString(GS_TotalEstrellas * GS_MedallasPorEstrellas);
break;
}
case 2:
{
GS_Totales[0, 2] = "Medallas por bonus que otorga el lider (opcional de conseguir)";
if (GS_Bonus)
{
GS_Totales[1, 2] = Convert.ToString(GS_MedallasPorBonus);
}
else
{
GS_Totales[1, 3] = "0";
}
break;
}
case 3:
{
GS_Totales[0, 3] = "Total Obtenido";
for (int i = 0; i < Totales.LongLength; i++)
{
Acumulador += Convert.ToInt32(GS_Totales[1, i]);
//SE POSICIONA EN LA COLUMNA 4
}
GS_Totales[1, j] = Convert.ToString(Acumulador);
break;
}
}
}