C sharp - El nombre no existe en el contexto actual

   
Vista:

El nombre no existe en el contexto actual

Publicado por Sergio (24 intervenciones) el 15/06/2012 22:58:51
Hola gente soy nuevo en c# y me da el mensaje de error No nombre objComercial5 no existe en el contextoo actual
desde ya gracias por la respuesta que me pudieran brindar

el codigo es el siguiente
#region Metodos
public static List<Comercial> Listar(bool var,string param1, string param2, string param3)
{

Comercial objComercial1 = null;
Comercial objComercial2 = null;
Comercial objComercial3 = null;
Comercial objComercial4 = null;

if (var)
{
Comercial objComercial5 = null;
}


try

{
objComercial1 = new Comercial("Juan", "Pérez", "1");
objComercial2 = new Comercial("Marta", "González", "2");
objComercial3 = new Comercial("Pedro", "García", "3");
objComercial4 = new Comercial("Sergio", "Tettamanti", "4");

if (var)
{
objComercial5 = new Comercial(param1, param2, param3);
}

}

catch (Exception ex)
{
throw new Exception(ex.Message);
}
List<Comercial> lstComerciales = new List<Comercial>();
lstComerciales.Add(objComercial1);
lstComerciales.Add(objComercial2);
lstComerciales.Add(objComercial3);
lstComerciales.Add(objComercial4);
if (var)
{
lstComerciales.Add(objComercial5);
}

return lstComerciales;
}
#endregion
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de roger

El nombre no existe en el contexto actual

Publicado por roger rogergomez780@hotmail.com (160 intervenciones) el 19/06/2012 16:07:19
debes definir Comercial objComercial5 = null; en un punto donde se este seguro de que va a existir cuando se use en las lineas siguientes del código

Como lo tienes

if (var)
{
Comercial objComercial5 = null;
}

Si no se cumple la condicion no se va a definir la variable entonces al entrar a

if (var)
{
objComercial5 = new Comercial(param1, param2, param3);
}

No se va a tener la certeza de que esa variable esta definida, por eso el error.

Creo que no deberias condicionarlo, simplemente definirlo asi:
Comercial objComercial5 = null;

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

El nombre no existe en el contexto actual

Publicado por be00fh (6 intervenciones) el 25/06/2012 19:39:31
Hola, el compilador de C# detecta una definición o declaración de campos/variables/estructuras, etc dentro de una instrucción if, lo que traduce que no necesariamente estará visible en todo el método que estas escribiendo.
En tal sentido es recomendable hacer declaraciones fuera de instrucciones if, for, while, swich, do, foreach, etc..

Be00fh.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar