Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: michdav44 en 4 Abril 2017, 14:04 pm



Título: Código de ejemplo.
Publicado por: michdav44 en 4 Abril 2017, 14:04 pm
Hola buenos días a todos, soy nuevo programando den c#.

Estoy tratando de organizar y estructurar uno de los ejemplos de programas que hay en un texto que sigo, el ejemplo dice que debo escribir el código como aparece en el libro y compilar pero no he logrado conseguir que funcione, pongo el codigo de abajo en Visual studio le doy compilar pero no funciona.


Código
  1. Class COrdenador
  2. {
  3. string marca;
  4. string procesador;
  5. int peso;
  6. bool peso;
  7. bool encendido = false;
  8. bool pantalla = false;
  9.  
  10. //
  11. }
  12.  
  13. public void EncenderOrdenador()
  14. {
  15. if (encendido == true)
  16. {
  17. System.Console.WriteLine("El ordenador ya esta encendido");
  18. }
  19. else
  20. {
  21. encendido = true;
  22. pantalla = true;
  23. System.Colsole.Writeline("El ordenador ha sido encendido");
  24. }
  25. }
  26.  
  27. public void Estadi()
  28. {
  29. System.Console.Write("\nEl estado del ordenador es el siguente:");
  30. System.Console.Write("\nMarca: " + marca);
  31. System.Console.Write("\nProcesador: " + procesador);
  32. System.Console.Write("\nPeso: " + peso + " kg.");
  33.  
  34. if (encendido == true)
  35. {
  36.  System.Console.Write("\nEl ordenador esta encendido");
  37. }
  38. else
  39.  System.Console.Write("\nEl ordenador esta apagado");
  40.  
  41. if (pantalla == true)
  42. {
  43.  System.Console.Write("\nLa pantalla esta activada");
  44. }
  45. else
  46.  System.Console.Write("\nLa pantalla esta desactivada");
  47.  
  48. System.Console.WriteLine("\n");
  49. }
  50.  
  51. public string marca
  52. {
  53. get
  54. }
  55. set
  56. {
  57. if (value == null)
  58. marca = "marca desconocida";
  59. else
  60. marca = value;
  61. }
  62. }
  63.  
  64. miOrdenador.marca = "Toshiba";
  65.  
  66. System.Console.Write(miOrdenador.Marca);
  67.  
  68. Class MiOrdenador
  69. {
  70. public static void Main(string[] args)
  71. {
  72.   COrdenador miOrdenador = New COrdenador();
  73.   miOrdenador.Marca = "Toshiba";
  74.   MiOrdenador.EncenderOrdenador();
  75.   MiOrdenador.Estado();
  76. }
  77. }

¿pueden guiarme por favor y ayudarme a ver cual es el error que estoy cometiendo?

MOD: Etiquetas GeSHi.


Título: Re: Código de ejemplo.
Publicado por: Eleкtro en 4 Abril 2017, 16:45 pm
1. C# es un lenguaje de capitalización sensible (case-sensitive), palabras reservadas como "class" o "new" deben ser escritas en minúscula.

2. Aquí tienes dos variables declaradas con el mismo nombre:
Código
  1. int peso;
  2. bool peso;

3. En el código que has mostrado no hay un espacio de nombres (o namespace) ni importaciones de espacios de nombres (directivas using), así que no sé si realmente has mostrado todo el código, pero en ese caso los métodos de clase deben ser declarados a nivel de clase, es decir dentro de una clase, no fuera.
Código
  1. class MyClass {
  2.    public void MyMethod() {}
  3. }
Y las clases no deben ser declaradas dentro de otra clase (en ese ejemplo que has escrito no).

4. En el código tienes muchos errores de tipografía por haber copiado mal lo que pone en el libro:
Citar
Código
  1. System.Colsole.Writeline
...No hay ninguna clase que se llame "System.Colsole" sino más bien "System.Console", al igual que tampoco hay ningún método que se llame "Writeline", sino más bien "WriteLine" (recuerda lo que dije en el punto nº1 sobre las mayúsculas y minúsculas). La mayoría de los miembros los estás llamando con mayúsculas cuando han sido declarados con un nombre en minúscula.

5. La propiedad "marca" la has declarado con un método getter vacío, y además sin las llaves de apertura/cierre {} (curly braces), de nuevo probablemente por no haber copiado bien lo que haya escrito en el libro.

El resto de errores que tengas son por más de lo mismo.



Mi consejo, si no te ves capaz de copiar correctamente un ejemplo del libro entonces deja el libro, ve a por ejemplos que ya estén escritos en Internet, y que sean algo más sencillos y de menor cantidad de lineas de código que el ejemplo de ese código, en ese ejemplo que has mostrado hay clases, métodos, variables locales, propiedades, condicionales, modificadores de accesibilidad de miembros, concatenación de cadenas de texto, llamadas a miembros built-in de la librería de clases de .NET Framework... son demasiados conceptos al mismo tiempo para alguien completamente nuevo, no me parece el mejor ejemplo para que sea tu primer intento de crear un código que funcione si no has aprendido uno por uno como utilizar cada tipo de miembro. Empieza con lecturas y ejemplos más básicos de como usar la sintaxis de C#, eso primero que todo lo demás... aprende a conocer y a usar la sintaxis (los operadores y las palabras reservadas), luego como declarar variables y como utilizarlas, como utilizar búcles, etc.

¡Saludos!


Título: Re: Código de ejemplo.
Publicado por: dato000 en 7 Abril 2017, 00:44 am
Todo lo que ha dicho el sensei Elektro es cierto, pero yo discrepo en una cosa:

Citar
Y las clases no deben ser declaradas dentro de otra clase

Eso es digamos, tecnicamente recomendable, sino embargo en muchos casos cuando se necesitan modelos temporales que sirvan como espacios de información para instanciar nuevos datos o capturar datos que vienen desde otros lados, a veces esa es una buena opción de trabajo para control de información.

Yo no le veo nada de malo a usar un libro y transcribirlo, así como aprendi c++  :laugh: :laugh: :laugh: siempre tenia errores y nada me salia bien, y cuando revisaba era porque ponia mal las letras o las comas  :laugh: :laugh: :laugh: pero yo considero eso importanto como para el proceso de aprendizaje.

Una buena practica de c# para esos ejercicios básicos es simplemente F5, F5, F5 y F5 hasta que sangren esos dedos!!!!



Título: Re: Código de ejemplo.
Publicado por: Eleкtro en 7 Abril 2017, 02:45 am
yo discrepo en una cosa:

Eso es digamos, tecnicamente recomendable, sino embargo en muchos casos...

En muchos casos si, por supuesto, pero no en este. Por eso escribí lo que no citaste, lo que puse entre paréntesis para remarcar que solo me estaba refiriendo a este ejemplo:

Cita de: Elektro
Y las clases no deben ser declaradas dentro de otra clase (en ese ejemplo que has escrito no).

¡Saludos!