Foros del Web » Programación para mayores de 30 ;) » .NET »

Porque en un lado funciona y en otro no

Estas en el tema de Porque en un lado funciona y en otro no en el foro de .NET en Foros del Web. Hola Porque en el primer caso "temperaturas" funciona si lo pongo fuera del Main y no me deja compilar en el segundo caso si lo ...
  #1 (permalink)  
Antiguo 29/04/2006, 00:20
Avatar de 2540EA  
Fecha de Ingreso: mayo-2005
Ubicación: Murcia
Mensajes: 229
Antigüedad: 19 años
Puntos: 0
Porque en un lado funciona y en otro no

Hola

Porque en el primer caso "temperaturas" funciona si lo pongo fuera del Main y no me deja compilar en el segundo caso si lo pongo dentro del Main?

Código:
/// Esto funciona

using System;
namespace a
{
   class Clase1
  {
     static float [,] temperaturas;
   
     [STAThread]
     static void Main ()
     {
        Console.WriteLine (temperaturas == null ? "null" : temperaturas.ToString());
     }
  }
}
-----------------------
Código:
/// Esto no funciona

using System;
namespace a
{
   class Clase1
   {
     [STAThread]
     static void Main ()
     {
         static float [,] temperaturas;
         Console.WriteLine (temperaturas == null ? "null" : temperaturas.ToString());
     }
  }
}
Me dice que el modificador static no es válido para este item. Pero si en el segundo caso lo cambio por int, si que funciona, no lo entiendo. Alguien sabe pq?

Gracias
Saludos

Última edición por 2540EA; 29/04/2006 a las 02:38
  #2 (permalink)  
Antiguo 29/04/2006, 01:30
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
En realidad dudo que uno de tus dos casos compile y mucho menos funcione.
ya que si estas usando C#, es indispensable que todo este dentro de una clase,
en segundo no veo por que declarar una variable static en Main, ademas de que no se permite.
en tercer la variable temperaturas no esta inicializada.
  #3 (permalink)  
Antiguo 29/04/2006, 02:36
Avatar de 2540EA  
Fecha de Ingreso: mayo-2005
Ubicación: Murcia
Mensajes: 229
Antigüedad: 19 años
Puntos: 0
Levas razón, gracias, ha sido un error mio al transcribir el código al post, pero ya lo he editado, el caso es q la de arriba me compila pero no el codigo de abajo.

Saludos
  #4 (permalink)  
Antiguo 30/04/2006, 05:17
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
si, eso pense, por eso te mencione los dos puntos siguientes, y croe que el que te causa el error en la 2a seccion es la variable static dentro de Main.
lo que sucede es que todas la variables static se supne que se crean mucho antes de que se ejecute la funcion Main, en este caso por estar esta declarada dentro de Main ya no podria ser creada en caso de que se permitiera.

Saludos.
  #5 (permalink)  
Antiguo 30/04/2006, 12:12
Avatar de 2540EA  
Fecha de Ingreso: mayo-2005
Ubicación: Murcia
Mensajes: 229
Antigüedad: 19 años
Puntos: 0
Gracias Nivel7, pero eso no me cuadra porque como dije en el post si cambio el "static float ..." por "static int .." no me da error. Si te te ocurre otra cosa ya me dirás

Gracias
Saludos
  #6 (permalink)  
Antiguo 02/05/2006, 13:20
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
disculpa que te insista, pero no se admite una variable static dentro de main, asi sea el tipo que sea incluyendo int, creo que deverias de revisar nuevamente tu codigo, solo para comprobarlo.

using System;
namespace a
{
class Clase1
{
[STAThread]
static void Main ()
{
static int [,] temperaturas;
Console.WriteLine (temperaturas == null ? "null" : temperaturas.ToString());
}
}
}

mira meto esto en el editor de C# y me manda el error:
  #7 (permalink)  
Antiguo 02/05/2006, 13:21
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
El modificador static no es valido para este elemento.
  #8 (permalink)  
Antiguo 02/05/2006, 13:53
Avatar de 2540EA  
Fecha de Ingreso: mayo-2005
Ubicación: Murcia
Mensajes: 229
Antigüedad: 19 años
Puntos: 0
Hola Nivel7

Gracias de nuevo, y si vas a llevar razón el otro día al poner int me compilaba y todo, y hoy no lo hace, habrá sido un error mio q no me di cuenta en aquel momento, perdon por las molestias es que soy novato en esto de .NET


Gracias
Saludos
__________________
Cada uno es dueño de su destino siempre y cuando los demás no marquen tu camino.
  #9 (permalink)  
Antiguo 03/05/2006, 18:12
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
No, al contrario, disculpa mi insistencia, pero la verdad me alegra que al fin estemos deacuerdo y sobre todo que ya te funcione. otra cosilla es que cuando uses campos estaticos o funciones estaticas es mejor usarlas precedidas de su clase:

Clase1.temperaturas.ToString();

para mejor claridad de codigo. ademas de que en ocaciones no se permite el uso solo por el campo.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:12.