No encuentro el error NullReferenceException
Publicado por Debyon (3 intervenciones) el 02/11/2017 01:56:20
Estoy usando el Visual Studio 7.2.2 para Mac. Aprendi C# hace un par de años y ahora estoy volviendo a recordar todo porque he estado como 1 año sin hacer nada. El caso es que haciendo un programa simple de consola que leyera un array de 2 dimensiones con unos datos predefinidos y luego los mostrara en pantalla. Supuestamente te pide el modelo a Buscar (que estan apuntados todos en el source), luego si hay 1 sola coincidencia imprime los datos de ese modelo en particular, si hay mas de 1 coincidencia imprime toda la lista de coincidencias y si no hay ninguna coincidencia muestra un mensaje diciendo que no ha encontrado nada.
El caso es que me sale System.NullReferenceException justo despues de poner la palabra para buscar y quiza soy yo que he perdido practica pero no encuentro el fallo. Os dejo el source para que lo veais. Aclaro que me gustaria que me explicarais el fallo en lugar de corregir sin mas el source porfavor. Graciaaas!!
PD: Pongo el codigo y ademas dejo el archivo source, no se de que modo os es mas comodo que lo ponga pero decidmelo para hacerlo asi siempre.
El caso es que me sale System.NullReferenceException justo despues de poner la palabra para buscar y quiza soy yo que he perdido practica pero no encuentro el fallo. Os dejo el source para que lo veais. Aclaro que me gustaria que me explicarais el fallo en lugar de corregir sin mas el source porfavor. Graciaaas!!
PD: Pongo el codigo y ademas dejo el archivo source, no se de que modo os es mas comodo que lo ponga pero decidmelo para hacerlo asi siempre.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
using System;
namespace ListadeModelos
{
class Program
{
static string[,] modelos = new string[6,9];//contiene los datos de los modelos
static void Main(string[] args)
{
string busqueda;//palabra que se usara para buscar entre los modelos del array
while(true)
{
Console.Write("Modelo a buscar: ");
busqueda = Console.ReadLine();
if (busqueda.ToUpper() == "SALIR")//para salir del programa
{
break;
}
Buscar(busqueda);
}
}
static void Buscar(string busqueda)//Busca en el array un resultado y luego ejecuta el metodo para cada caso
{
int contador = 0; // cuenta la cantidad de veces que encuentra un resultado
int encontrado = 0; //contendra el numero de array para en caso de encontrar solo un resultado saber cual es.
for (int x = 0; x < modelos.GetLength(0) ; x++)
{
if (modelos[x, 0].ToUpper().Contains(busqueda.ToUpper()))
{
contador++;
encontrado = x;
}
}
if (contador == 1)
{
Console.WriteLine("\n\n");
Imprimir(encontrado);
}
else if (contador > 1)
{
Console.WriteLine("\n\n");
Imprimirlista(busqueda);
}
else
{
Console.WriteLine("\n\n");
Console.WriteLine("No se han encontrado resultados.");
}
}
static void Imprimir(int encontrado)//Imprime en pantalla los datos en caso de que solo haya una coincidencia en la busqueda
{
for (int x = 0; x < modelos.GetLength(1); x++)
{
if(modelos[encontrado, x].Contains("Nulo"))
{
break;
}
Console.WriteLine(modelos[encontrado, x]);
}
}
static void Imprimirlista(string busqueda)//Imprime en pantalla la lista de nombres de los modelos encontrados en caso de que haya mas de 1 coincidencia
{
for (int x = 0; x < modelos.GetLength(0); x++)
{
if (modelos[x,0].ToUpper().Contains(busqueda.ToUpper()))
{
Console.WriteLine(modelos[x,0]);
}
}
}
static void CrearLista()//Crea la lista a partir del array asignando todos los campos como "Nulo" y despues rellenandolos manualmente.
{
//creacion de la list
for (int x = 0; x < modelos.GetLength(0); x++)
{
for (int y = 0; y < modelos.GetLength(1); y++)
{
modelos[x, y] = "Nulo";
}
}
modelos[0, 0] = "Aitana Blanco";
modelos[0, 1] = "Base D.Doble";
modelos[0, 2] = "FC-9922/417D";
modelos[0, 3] = "Peso: 55g";
modelos[0, 4] = "Dens: 155";
modelos[0, 5] = "Nulo";
modelos[1, 0] = "Aitana Gris";
modelos[1, 1] = "Base D.Doble";
modelos[1, 2] = "Base Aitana Jet";
modelos[1, 3] = "Peso: 55g";
modelos[1, 4] = "Dens: 155";
modelos[1, 5] = "Nulo";
modelos[2, 0] = "Alaska Gris";
modelos[2, 1] = "Engobe Campana";
modelos[2, 2] = "Engobe Gres Campana";
modelos[2, 3] = "Peso: 50g";
modelos[2, 4] = "Dens: 180";
modelos[2, 5] = "Base Campana";
modelos[2, 6] = "MGM-0222";
modelos[2, 7] = "Peso: 55g";
modelos[2, 8] = "Dens: 180";
modelos[3, 0] = "Andes Marengo";
modelos[3, 1] = "Base D.Doble";
modelos[3, 2] = "Base Etna Jet";
modelos[3, 3] = "Peso: 50g";
modelos[3, 4] = "Dens: 155";
modelos[3, 5] = "Nulo";
modelos[4, 0] = "Andes Sage";
modelos[4, 1] = "Base D.Doble";
modelos[4, 2] = "M81/202";
modelos[4, 3] = "Peso: 50g";
modelos[4, 4] = "Dens: 155";
modelos[4, 5] = "Nulo";
modelos[5, 0] = "Arcalis Mix";
modelos[5, 1] = "Base D.Doble";
modelos[5, 2] = "EG-445/18992";
modelos[5, 3] = "Peso: 55g";
modelos[5, 4] = "Dens: 152";
modelos[5, 5] = "Nulo";
}
}
}
- Source.zip(1,3 KB)
Valora esta pregunta
0