C# para principiantes: paso por paso | Jason Bentley | Skillshare
Buscar

Velocidad de reproducción


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

C# para principiantes: paso por paso

teacher avatar Jason Bentley

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      Introducción

      2:17

    • 2.

      Requisitos de aplicación de ATM

      3:30

    • 3.

      Por qué C#

      6:38

    • 4.

      Configuración de tu entorno de desarrollo

      2:24

    • 5.

      Introducción a Visual Studio

      8:09

    • 6.

      Introducción de C#

      1:34

    • 7.

      Aplicaciones de consola

      1:37

    • 8.

      Variables

      1:54

    • 9.

      Alcance, moderadores de acceso variable

      3:52

    • 10.

      Pantalla de acceso

      3:04

    • 11.

      Si otras declaraciones

      3:45

    • 12.

      Autenticar al usuario

      2:14

    • 13.

      Propiedades, métodos y constructores

      4:49

    • 14.

      Caso de interrupción

      2:33

    • 15.

      Pantalla de menú principal

      7:28

    • 16.

      Trabajar con cuerdas

      4:15

    • 17.

      Consulta la pantalla de equilibrio

      4:18

    • 18.

      Math

      5:03

    • 19.

      Pantalla de depósito

      3:53

    • 20.

      Reglas de negocios

      2:31

    • 21.

      Retirar pantalla

      3:27

    • 22.

      Arrays y listas

      4:15

    • 23.

      Bucles

      3:31

    • 24.

      Pantalla de transacciones recientes

      4:39

    • 25.

      Introducción a LINQ

      4:16

    • 26.

      Supporting a más de un usuario

      4:09

    • 27.

      Ende

      1:52

    • 28.

      Corrección de errores

      8:33

    • 29.

      Introducción

      0:48

    • 30.

      Proyecto #1: Component de la cabeza

      0:57

    • 31.

      El de proyecto #1

      2:31

    • 32.

      Proyecto #2: Corrección de la pantalla de

      2:45

    • 33.

      Repaso de proyectos #2

      3:28

    • 34.

      Proyecto #3- Reparar la pantalla de la eliminación de

      1:22

    • 35.

      Repaso de proyectos #3

      4:26

    • 36.

      Revisión de cursos

      2:19

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

314

Estudiantes

--

Proyecto

Acerca de esta clase

Aprende los conceptos básicos de programación para crear aplicaciones en el popular lenguaje de programación C#. Estos conceptos son esenciales para crear una base fuerte de conocimientos para crear aplicaciones de cualquier tamaño o tipo.

Consigue las habilidades que cada desarrollador para lanzar una carrera exitosa.

  • Lógica de control
  • Traducción de requisitos de negocio para el código que funcionará
  • Proceso de creación de aplicación
  • Programación con objetos (OOP)

Ponte a acelerar rápidamente con el lenguaje de C# sin perder tiempo

Aprender a crear software puede ser una tarea bastante abrumar. Hay miles de cosas que quizás necesites de saber, pero este curso de que solo cubre lo que necesitas definitivamente saber. Los conceptos de este curso te serán muy beneficiosos aunque decidas cambiar idiomas más porque los conceptos son los mismos en todos los idiomas de programación y estos conceptos son lo que todos los conceptos necesitan saber antes de empezar de comenzar su viaje de programación.

Este curso es algo diferente de otros en el mismo tema. Como ya mencionados, aprenderás solo las partes necesarias del lenguaje y y y de más importancia los conceptos que se introducen, los conceptos que se introducen de inmediato y luego se refuerzan en todo el curso para mejorar los conocimientos y los entendidos.

Contenido de el curso

  • Comenzarás con un video que detallen los requisitos de la aplicación que se construye en este curso.
  • Aprenderás por qué C# es un gran lenguaje de programación para cualquier persona para aprender.
  • Aprenderás a descargar e instalar Visual Studio y cómo utilizarlo eficientemente.
  • Aprenderás los conceptos más de programación que debes saber de éxito Te guiaré a través de la construcción de la aplicación paso a paso, pasando de la aplicación a la aplicación completado.
  • Tendrás varios proyectos que te permitirán probar tu conocimiento y te dará una oportunidad para estirar lo que has aprendido y cómo aplicarlo a escenarios del mundo real.

Conoce a tu profesor(a)

Teacher Profile Image

Jason Bentley

Profesor(a)
Level: Beginner

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. Introducción: bienvenido al C Sharp para principiantes. Curso paso a paso. En este video, te daré una breve vista previa de qué esperar en el curso, cómo sacarle el máximo provecho y qué aprenderás en la primera sección. He diseñado este curso para enseñarte los conceptos y características más importantes de la programación y el lenguaje agudo C. Estaremos construyendo una aplicación de equipo A muy sencilla en este curso y las partes principales del mar El lenguaje Sharp se utilizará para ello. Te enseñaré una característica del idioma y lo aplicaremos de inmediato. En un escenario real, el gobernador está justo a tiempo aprendiendo y haciéndolo. Los conceptos se pegarán contigo en. Cuando termines el curso, tu base en el idioma será sólida y serás capaz de seguir adelante y construir aplicaciones más sofisticadas en C afiladas. Cada video de este curso en el que creamos código tiene una descarga del producto terminado en el recurso es sección. Esto debería ayudarte a superar problemas en los que las cosas simplemente no están funcionando para ti. En ese video en particular, sin embargo, les animo encarecidamente a evitar el producto francés a menos que estén teniendo problemas. El primer obstáculo que hay que superar al aprender un nuevo lenguaje de programación es la sintaxis. Hasta que puedas sentarte y escribir código sin pensar en la sintaxis, estás desperdiciando ciclos cerebrales. Encima el código tú mismo. Practica montar en C código afilado hasta que estés completamente cómodo haciéndolo. Incluso ir tan lejos. A. Aún así borra tu código y vuelve a escribirlo hasta que puedas hacerlo desde la memoria. El mejor modo de aprender un lenguaje de programación es la repetición una y otra vez hasta que sea de segunda naturaleza. En este apartado, comenzaremos con los requisitos básicos de la aplicación A T M. Se presentarán los requisitos y se presentarán de manera que se pueda presentar un producto real que se te está pagando para crear. Entonces veremos por qué C. Sharp es un gran lenguaje de programación de nivel principiante y lo que podrías lograr el C sharp. ¿ Qué tipo de plataformas de lenguaje soporta algunos de los marcos disponibles y demás? Entonces te ayudaré a obtener la última versión de visual studio descargada e instalada en tu máquina. Por último, te mostraré cómo navegar por dentro de visual studio y cómo utilizar el programa. En el siguiente video, veremos los requisitos de la aplicación A T M. 2. Requisitos de aplicación de ATM: en este video, repasaré los requisitos básicos de aplicación de 80 M. Hay un par de cosas que debes saber sobre los requisitos primero, casi nunca te dieron en un estado terminado. Será tu trabajo hacer preguntas. Ayuda recordar que lo más probable es que el requisito se originara a partir de una idea. Es sólo una probabilidad de que la idea viniera de una persona de negocios y aún más probable que la persona que tenía la idea original no pusiera mucho en cosas como la seguridad, el desempeño, desempeño, mantener la capacidad, la reutilización y validación. Tienes que considerar todos estos puntos y mawr a la hora de implementar de requisito. En segundo lugar, lo más probable es que los requisitos que te den toquen otros requisitos que no se mencionan en el requisito que te dieron. Da la pena estar pensando hacia adelante y hacer que tus codas sean lo más extensibles posible. Por ejemplo, lo mismo. Tenemos un requisito básico para la validación de un campo que tiene un número de teléfono basado en Estados Unidos, por lo que implementas ese requisito más adelante, obtienes otro requisito para validar otro campo que tenga un número telefónico basado en Estados Unidos, y aún más adelante se obtiene otro requisito por validar campos numéticos horribles y la validación ha tomado en cuenta el código de país que fue seleccionado por el usuario. Dependiendo del trabajo que hayas realizado, es posible que tengas que desechar por completo, e incluso puedes tener código duplicado en tu sistema, y tendrás que hacer cambios en varios lugares diferentes. Podrías haber evitado la mayor parte de este problema con un diseño adecuado. Como descargo de responsabilidad, he obtenido requisitos que eran tan completos o incluso más de lo que serían si los hubiera hecho yo mismo. Pero se aplicarán las reglas 1er 2. La mayoría de las veces menos te encontrarás en esa situación más que no. Pasemos a los requisitos básicos para la aplicación del equipo A. Como usuario, me gustaría poder iniciar sesión en la aplicación con un número de cuenta de cuatro dígitos y un número PIN de cuatro dígitos. Este es un requisito bastante simple, obviamente, en un re elei tm, tienes un auto que insertas y la sartén debe coincidir con el número de pin que se almacena para la tarjeta. Pero por ahora, esto servirá pero notará lo que no se menciona. ¿ Y si se ingresa una combinación inválida? Qué pasaría si un usuario intentara 10 o 12 veces iniciar sesión con credenciales atrasadas. Como usuario, me gustaría poder volver a cerrar la sesión de la aplicación. Este es un requisito fácil, y si puedes iniciar sesión, deberías poder cerrar sesión como usuario. Me gustaría que el dedo del sistema tuviera un menú principal que sea accesible desde todas las demás pantallas de la aplicación. ¿ Ves algo malo con este requisito? Observe que no tiene ningún detalle de lo que debe tener la pantalla. Como usuario, me gustaría poder ver nuevamente el saldo de mi cuenta. Este es un requisito sencillo, pero falta detalle. Como usuario, me gustaría poder hacer depósitos en mi cuenta. Aquí también falta detalle, también falta detalle, pero lo ignoraremos por ahora. Como usuario, me gustaría poder realizar retiros de mi cuenta. ¿ Y si el usuario tiene menos dinero en la cuenta que quiere retirar? ¿ Y si es exactamente la misma cantidad que el usuario tiene en su cuenta? Como usuario, me gustaría poder ver todas mis últimas transacciones. ¿ Cuántos exactamente? ¿ Y si no ha habido ninguno en más de un año? ¿ Y si hay miles en la semana pasada? Como puedes ver, casi siempre tendrás más preguntas que respuestas. Tendrás que tener una conversación con Stakeholder, el analista de negocios o la persona que creó el requisito. En el siguiente video, estaremos configurando tu entorno de desarrollo. 3. Por qué C#: en este video, voy a hacer mi argumento por el porqué creo que C. Sharp es un gran lenguaje para que aprendas a empezar. Yo quiero decir de inmediato, el corto de mar puede no ser el mejor lenguaje para todos. Si buscas montar un sistema operativo como Windows o inclinaciones, C Sharp es de hecho el idioma equivocado Para que aprendas. Deberías estar mirando C o C plus, si estás intentando crear algo que absolutamente debe funcionar directamente con hardware, C Sharp no es la mejor opción. Pero si esas dos categorías no lo hacen realmente, te vas. C Sharp es probablemente un gran idioma para que aprendas. Empecemos con el lenguaje y las características. C. Sharp es un lenguaje moderno, de alto nivel. Esto significa que está más cerca de las palabras habladas que los lenguajes de nivel inferior como assembly o C. El lenguaje sí, sin embargo, tiene una sintaxis de estilo C. Esto ha sido oficial porque hay muchos idiomas que tienen una sintaxis de concha marina, y eso significa que si aprendes, mira seguro que tendrás un tiempo más fácil recogiendo otro lenguaje basado en asientos como Java C C plus o script Java. Se ven y se comportan de manera similar. C Sharp está en demanda. Daré un par de puntos de prueba más adelante en este video, pero es consistentemente uno de los cinco lenguajes de programación más populares. C Sharp es un lenguaje fácil de recoger pero tiene un aliento que hace difícil dominar. En muchos casos, existen varias formas diferentes de lograr una sola tarea, que hace más difícil dominar. C. Sharp tiene una comunidad extremadamente fuerte que lo rodea. Microsoft siempre se hace un trabajo maravilloso para respaldar el idioma y asegurarse de que la documentación sea insuperable. Y hay millones de ejemplos por ahí. Si quieres hacer algo, casi cualquier cosa, puedes encontrar un ejemplo o miles en la Web por solo esa cosa. Gran parte del lenguaje C Sharp es de código abierto, y tiene un enigma o E. C. M. Un estándar, que está disponible públicamente pero propiedad de Microsoft. Recientemente, el framework The Dark Knight también se puso a disposición del público y de código abierto y tiene una versión ejecutándose en Lenox y Eilis. C. Sharp está evolucionando rápidamente, y esto es muy importante. Cuando C. Sharp fue introducido por primera vez era claramente una impronta de Java de muchas maneras. Ahora, sin embargo, Java parece ser algo así como un knockoff de C Sharp, y el lenguaje Java está siguiendo y ver cortos pasos. Una nueva versión de C Sharp se lanza alrededor de cada dos años, y cada lanzamiento siempre tiene algunas características realmente geniales. Como mencioné antes, C Sharp se puede utilizar a grandes programas en plataformas que no sean sólo ventanas, y para mí, eso aumenta drásticamente su atractivo. Por último, usar C sharp significa que puedes usar visual studio. Lo que estoy a punto de decir puede ser considerado polémico. Visual studio es, con mucho, el mejor entorno de desarrollo disponible, gratuito o comercial. Algunos se reirán de eso y dicen que son más productivos en VM o acantilados o algún otro entorno de desarrollo integrado. Pero aquí está la cosa. Si lo son, es porque sin duda son un experto en esos entornos. No obstante, hasta llegar a ese nivel experto, hay muy, muy poca duda de que un principiante y estudio visual será más productivo y competente que un principiante en cualquiera de esos otros entornos. En caso de que no te haya convencido, quiero darte una racha rápida por algunas de las cosas que puedes lograr con C Sharp. Si está apuntando a Windows, tiene dos opciones WP F o Windows Presentation Foundation y Universal Windows Platform o You WP para abreviar, que apunta a Windows 10 WP f todavía se puede utilizar en Windows 10 Pero usted WP es el recomendado camino a seguir para Windows 10 y futuras versiones de Windows. Si quieres crear aplicaciones Web, tienes un SP .net, también conocido como formularios Web y s p dot net. NBC. NBC utiliza el popular Modelo View Controller Development Paradigm. Yo recomendaría que si vas a hacer Web que tenías en dirección NBC, Wet Forms no es tan popular. Actualmente es NBC, y no puedo ver a Microsoft crear muchas características nuevas para esa plataforma en particular. Si necesitas volver a crear servicios Web, tienes dos opciones. Windows Communication Foundation o Day Bcf y Web AP I No voy a hacer una recomendación al respecto, ya que he usado ambos, pero definitivamente prefiero Web A PR. Es simplemente más fácil, y W C F nunca ha resonado realmente conmigo, pero tu conocimiento puede muy si estás apuntando Mobile Zaman te permite escribir código C nítido que se compila en aplicaciones nativas. Zaman soporta IOS, Android y Windows phone. Por supuesto, IOS y Android son los biggies y cubren el 90 más por ciento del mercado. En caso de que sí necesites soporte telefónico de Windows, sin embargo, lo tienes para la nube. Microsoft Azure es bastante increíble, y, ya que es de Microsoft, tiene un soporte realmente bueno en integración. Pero puedes usar los servicios web de Amazon. Por último, llegamos al desarrollo de juegos, y el gorila de 900 libras para el desarrollo de juegos basado en C Sharp es Unity tres D. Si eres un aspirante a desarrollador de juegos, realmente deberías echar un vistazo a la unidad. No es solo por soporte de tres D al pozo de Dia, y Unity soporta casi cualquier plataforma a la que te gustaría apuntar, incluyendo IOS, Android Windows, la Web, el PS four, el Xbox one Wii U y Nintendo DS. Si no mencioné una plataforma, te interesa checar la página web de unidades ya que soportan casi 30 plataformas actualmente. A continuación, veamos primero algunos puntos de popularidad. Cuando busqué polvo dot com el 24 de febrero de 2018 había cerca de 6000 posiciones abiertas C afiladas . El lenguaje está actualmente en el puesto número cinco en el Índice de Popularidad del Lenguaje de Programación de T. O B. Deberías consultar el índice para ver cómo se clasifica T o. B, los idiomas y las fórmulas que utilizan si quieres números salariales. Glassdoor dice que el desarrollador puntiagudo de C promedio en Estados Unidos gana alrededor de 80.000 dólares al año, y el desarrollador puntiagudo de C senior promedio en Estados Unidos gana alrededor de 97,000 dólares al año . Ambos son números bastante impresionantes para algo que absolutamente no tienes que ir a la universidad y puedes aprender en unos meses. Y como mencioné anteriormente en este video, si aprendes C agudo, puedes aprender otros lenguajes de lubina más fácilmente, y eso abrirá aún más oportunidades laborales. En el siguiente video. Te ayudaré a poner en marcha tu entorno de desarrollo 4. Configuración de tu entorno de desarrollo: en este video, te daré una visión general rápida sobre la instalación de visual studio. Abrir un navegador a visual studio dot com. Descargas de barras inclinadas hacia adelante. Deberías ver las cuatro opciones en la comunidad de pantalla, empresa profesional y código. Haga clic en el botón de descarga para Visual Studio 2017 Community Edition. Esta es una descarga bastante rápida cuando se completa abrir ese programa. Esto puede tardar unos momentos, así que siéntete libre de pausar el video hasta que se cargue el instalador. Una vez cargado el programa, se le debe presentar un diálogo de instalación como el de la diapositiva. Asegúrate de estar en la pestaña de cargas de trabajo y eres bienvenido a pausar el video de nuevo y pasar por estas opciones. Pero asegúrese de seleccionar el entorno de escritorio dot net resaltado en esta diapositiva. Daré una visión rápida de las opciones más importantes que es más probable que te interesen . Yo sólo quiero dar una palabra de advertencia aquí. Si seleccionas un montón de opciones en este diálogo, tu tiempo de descarga lo va a multiplicar muchas veces. De acuerdo, y la sección superior es Desarrollo de Windows. La opción de desarrollo de la Plataforma Universal Windows le permitirá desarrollar aplicaciones y aplicaciones de Windows 10 para la tienda de aplicaciones de Windows. El apartado de desarrollo de escritorio dot net es lo que estaremos usando y definitivamente necesita ser instalado en la sección Web y Cloud. El SP dot net y la opción de desarrollo Web te permitirá desarrollar un s p dot net y aplicaciones SP .net NBC si seleccionas la opción NBC en la mano derecha. dolor en la sección móvil y de juegos es tanto Sam como para móvil y Unity for Game development. Y por último, en la última sección bajo otros conjuntos de herramientas, la opción de desarrollo de plataforma cruzada de punto net core está disponible para el desarrollo aplicaciones multiplataforma. Te recomiendo que por ahora, solo selecciones la opción de desarrollo de escritorio dot net y en el dolor de la mano derecha, solo deja las opciones predeterminadas tal como están. Puedes volver a ejecutar esta aplicación en cualquier momento para modificar tu instalación, y el siguiente video te guiaré por la interfaz de usuario de visual studio 5. Introducción a Visual Studio: en este video, te daré una introducción muy breve a Microsoft Visual Studio, pero una falla. Al lanzar visual studio, deberías ver la página de inicio en el dolor de la mano izquierda. enumerará todo el proyecto más reciente en el que hayas trabajado. Esta es una conveniencia real porque en su mayor parte, estarás trabajando en las mismas cosas día tras día en el dolor medio. Tienes la sección abierta, que te permite consultar proyectos desde el control de fuentes, utilizando los servicios de equipo de estudio visual y obtener hub. Ambas son gratuitas, y te animo a que las revisen. Visual Studio Team Services se encuentra en www dot visual studio dot com y get Hub se encuentra en www dot get hub dot com. Acceder a la función de control de fuentes de cada uno de estos sitios requerirá que te registres para obtener una cuenta gratuita, pero ambos valen totalmente la pena. control de fuentes es la práctica de almacenar tu código en un repositorio en línea que puedes usar para el control de versiones y copia de seguridad de la versión. Control significa que cada vez que compruebes una caída en el sistema de control de versiones creará una nueva copia de la Foul. Se pueden ver las versiones anteriores para ver qué ha cambiado con el tiempo. Debajo de la sección de check out, puede abrir una solución de proyecto o foto desde disco utilizando un diálogo abierto estándar. También puede abrir un proyecto Web desde disco o conectarse a un servidor Web para editar esos proyectos debajo de la sección abierta. Tienes la nueva sección de proyectos. En la mitad inferior de esta sección, encontrarás todas las plantillas de proyecto que has utilizado recientemente. Por debajo. El reciente listado de Plantilla de proyecto es un enlace de crear nuevo proyecto, que abrirá el diálogo Crear nuevo asistente de proyecto, donde las plantillas se agrupan en funciones similares. Encima de la lista de proyectos recientes se encuentra un cuadro de texto donde se puede buscar en todas las plantillas que tenga instaladas en su máquina un proyecto específico. Top Si escribo en un sp dot net un interno, veré una lista de todas las plantillas de proyecto para tener un s p dot net en el nombre de la plantilla que he instalado. El dolor de jamón derecho es noticia de desarrollador que es publicada y mantenida por Microsoft. No me sirve mucho de las noticias, así que siempre lo minimizo, pero tú, como nuevo desarrollador, podrías encontrar algunos buenos artículos ahí de vez en cuando. Vamos a mover el sistema de menús del estudio visual y falta. Tenemos un elemento de menú para nuevo que te permitirá crear un nuevo sitio web del proyecto, y así uno usando el asistente que vimos antes. También hay un menú abierto Adam que te permite abrir un proyecto o solución o un sitio web al igual que la página principal hacia abajo. Hay un menú de archivos reciente, Adam que mostrará una lista de seguimientos que has abierto recientemente, y a continuación que hay un proyecto y soluciones recientes siendo tú, Adam, que mostrará una lista de proyectos y soluciones que tienes recientemente inaugurado. Visual studio es un entorno de ventana Dentro de la ventana principal del estudio visual. A menudo tendrás decenas de ventanas de herramientas abiertas en tres dolores girados diferentes a la izquierda ,la , derecha y la parte inferior y el menú Ver. La mayoría de los elementos de un menú infantil son ventanas, e incluso hay mawr debajo del otro menú de Windows Adam. También hay muchas barras de herramientas que puedes mostrar u ocultar que realizan una variedad de funciones bajo el menú de herramientas en la parte inferior, hay un menú de opciones. Adán. Si quieres personalizar visual studio, más posible es que la configuración está en este diálogo. Hay miles de formas de personalizar el entorno, pero para la mayoría de las personas, la configuración predeterminada estará bien. Hay un par de configuraciones a las que quiero llamar su atención. Bajo el medio ambiente. Encabezando el primero son las fuentes y los colores. Si tienes problemas para ver el texto en la pantalla, o si el Texas es demasiado grande, puedes ajustarlo aquí. El segundo son los atajos de teclado. Esto le permitirá asignar nuevos accesos directos a átomos existentes o crear los suyos propios. A medida que te vuelvas más experimentado, te encontrarás usando menos el ratón y confiando en el teclado más y atajos cada vez más importantes. El último hombre que quiero mostrar es ventana. Cuanto más uses visual studio, más querrás que sea de cierta manera. Cuando estés contento con el diseño, puedes guardarlo con el diseño de ventana Guardar. Menú Adam. Después de guardar un diseño, puedes restaurar eso. Disponga en cualquier momento con el menú de diseño de ventana aplicar Adam, y finalmente, puede restablecer el diseño de ventana a los valores predeterminados de fábrica con el menú de reinicio de diseño. Adam, Echemos un vistazo dentro de estudio visual por un rato. Todas las ventanas de herramientas en visual studio se pueden anclar, y estoy anclado y redimensionado. Puedes personalizarlo para que se adapte a tus rodillas y en lo que estás trabajando. Visual Studio también recuerda el orden de las ventanas. Si nota la solución, Explorer ventanas en la barra superior y la ventana de propiedades está en la parte inferior, derecha. Yo, um,los clavaré um, a ambos. Y si luego los vuelvo a abrir de nuevo, regresan a donde estaban. Antes de estar en pin, notarás que tienes varios a ventanas en la parte inferior. Podría decirse que la lista aérea es la más útil, ya que te darán detalles sobre los errores en tu código antes de ser compilado. Visual studio también soporta vistas de dolor dividido. Abriré a las caídas de código y luego usaré una vista de dolor dividido para el área de código. Esto es ideal para comparaciones lado a lado. Lo último que quiero mostrar es cómo depurar. Depurar es la práctica de caminar por el código ya que se ejecuta para ver de primera mano. Qué está pasando La depuración se llama depuración porque suele ser lo que sucede cuando estabas rastreando errores en tu código. En el extremo izquierdo, roba a un lado la ventana de códigos, verá una delgada franja gris. Se pueden establecer puntos de ruptura en cualquier línea que haya ejecutado código BLE en ella haciendo clic en la tira . Los puntos de ruptura son prácticos porque evitan que tu código se ejecute. Si conoces el área de tu código que está teniendo un problema específico, esto te ahorrará caminar por todo lo que puedes simplemente establecer un punto de descanso donde está el problema y empezar por ahí. Por lo que he enviado un punto de ruptura y verás que la ejecución del programa se pausa Cuando se golpea, puede notar por la forma en que la línea roja se volvió amarilla. Se puede quitar un punto de ruptura haciendo clic nuevamente en el mismo punto. Para facilitar su depuración, quiero llamar su atención sobre tres elementos diferentes de la barra de herramientas en la parte superior de la pantalla. El primero en entrar en la tecla de acceso directo para entrar es F 11. Lo usarás mucho cuando estés depurando y tienes un método que se está llamando. Se puede entrar en ese método y ver qué está pasando ahí. En la siguiente barra de herramientas, el otoño es paso por alto. Hace exactamente lo contrario de paso adentro pisando los métodos llamados. El método abreviado para el paso más es F 10. Por último, el paso hacia una barra Adam saldrá de un método en el que te has metido, y ese atajo de teclado es el turno F 11. Presta atención a esto mientras el micrófono. Tienes un buen control sobre muchas cosas. Como puede ver, ingresé 1234 para este prompt mientras depuraba. A pesar de que puedo pasar el cursor sobre la vivienda variable el valor 1234 y cambiarlo, sumaré un cinco hasta el final, y como pueden ver, ahora ha cambiado. Puedes hacer lo mismo en la ventana de herramientas locales en la parte inferior de la pantalla. Añadiré un seis. Ahora si vuelvo a pasar el cursor sobre la variable, verás que el valor se ha cambiado a 123456 Esto concluye el recorrido para estudio visual. Sé que podría parecer un poco abrumador porque es un producto grande, pero solo usa lo que tienes que hacer y los alumnos Ugo. En el siguiente video, estaremos en la Sección dos y empezaremos a mirar a C Sharp 6. Introducción de C#: en esta sección, iniciaremos nuestra aventura en C agudo. En primer lugar, aprenderemos sobre la plantilla de proyecto de aplicación de consola visual studio y para qué podría utilizarla. Después aprenderemos a crear y usar variables y a hacer un alcance adecuado de cualquiera que pueda necesitar crear. Después construiremos la pantalla de inicio de sesión para la aplicación y empezaremos a mirar la lógica de control usando sentencias FL después, si de lo contrario veremos cómo autenticar usuarios en nuestra aplicación, y luego aprenderemos sobre propiedades, métodos y constructores cómo voy a usar cada uno y cómo aplicarlos correctamente. Después de eso, aprenderemos más sobre la lógica de control mirando las declaraciones de caso de cambio. Y luego construiremos la pantalla del menú principal después de la pantalla del menú principal. Miraremos un par de métodos diferentes disponibles para manipular cadenas, y luego construiremos la pantalla de balance de pantalla. Después de la pantalla de balance de pantalla. Tomaremos unos minutos para examinar cómo funciona la matemática y ver puntiagudo. Después construiremos la pantalla de depósito después de que la pantalla de depósito echará un vistazo a las reglas de negocio y luego construiremos la pantalla de retiro y luego echaremos un vistazo a un aumento, listas y genéricos. A continuación, echaremos un vistazo a los diferentes bucles que podemos usar y luego construiremos la pantalla de transacciones recientes . Después de la pantalla de transacción reciente, aprenderemos cómo funciona Link y luego construiremos soporte en la aplicación para más de un usuario. Por último, vamos a repasar e noticias y luego arreglar algunos bugs que existe en la aplicación. En el siguiente video, comenzaremos con aplicaciones de cónsul. 7. Aplicaciones de consola: En este video, veremos las aplicaciones de consola y sus usos. Las aplicaciones de cónsul son el tiempo de aplicación de la mar más básico. Carecen de la típica interfaz de usuario a la que estamos acostumbrados. En cambio, los usuarios interactúan con ellos desde la línea de comandos ingresando comandos en forma de texto y leyendo la salida de aplicaciones desde la misma ventana. Debido a que su básico y no necesariamente requieren interacción de un usuario, los convierte en la elección perfecta del proyecto para realizar tareas repetibles donde ya se conocen las condiciones e insumos. Eso podría ejecutarse desde la línea de comandos y desde otras aplicaciones. ímpetu a una aplicación cónsul ocurrió de dos maneras. Los primeros argumentos se pueden especificar cuando se inicia el programa. Las aplicaciones del Segundo Cónsul pueden retroceder el texto ingresado por el usuario de dos maneras. El cónsul dot Reekie y el consejo dot reid Line tanto el cónsul dot Reekie como el punto de la consola Reid Line realizan una acción de bloqueo, y la ejecución del programa se detiene hasta que se ingresa texto. Council dot Reekie lee la primera tecla presionada por la línea de punto reid de la consola de usuario lee todo el texto. El usuario se ingresa en cuanto presiona la tecla enter. Obtener datos de una aplicación cónsul es muy similar. Cónsul punto Derecho y consola Muere. Línea derecha. Correcto. Texto a la consola de la ventana de la consola. Die right reemplazará texto en la línea actual donde está el cursor y consola esa línea correcta creará una nueva línea. Y puse el texto ahí. En el siguiente video, veremos las variables C agudas. 8. Variables: son una representación en memoria de una pieza de datos. Están conformadas por tres partes. Las variables encabezan el nombre de las variables y se deben declarar las variables de valor, y esto se denomina más comúnmente una declaración de variable. En estas dos declaraciones variables, se ve el patrón de la cadena superior y el nombre saludo y nombre en el primero. El valor de las variables se establece durante la declaración en el segundo. El valor de las variables establecido después de la declaración, pero ambas declaraciones son esencialmente las mismas. variables de nombre superior y valor son importantes porque representan datos que son programas pueden manipular y usar. Existen dos tipos principales de variables. Tapas de referencia y tapas de valor. Referencia. Las variables principales son en realidad una referencia a una pieza de memoria. Si dos variables superiores de referencia ambas apuntan a la misma pieza de memoria, cambiar el valor de esa memoria para una variable cambiará también el valor para la otra variable. Valor variables superiores aire diferente. Siempre son pequeños y en realidad albergan el valor. Si asigna una variable superior de valor y copia ese valor a otra variable superior de valor , el valor se copia en realidad. En esta tabla se muestra la lista de valores máximos para el 99% de los casos de uso. Puede utilizar las siguientes cadenas de cosas de mapa variable para datos alfanuméricos y para números , doble para números de precisión con el lugar decimal y el número de dígitos después de la materia de lugar decimal. Pero para datos binarios, como un toro de archivos para valores falsos verdaderos y largos para números muy grandes después de 18 años, siguen siendo los primeros en la lista de valores superior que no he usado. Y probablemente tampoco lo hará. En el siguiente video, discutiremos alcances soportables y modificadores de acceso. 9. Alcance, moderadores de acceso variable: alcance variable determina la visibilidad de una variable al resto del programa. En resumen, las variables suelen ser objeto del objeto en el que se crean. Esto incluye métodos. Los métodos se cubrirán en la muerte en un módulo posterior, pero debemos tocarlos aquí si se quiere tener una comprensión de alcance cultivable. Un método es un bloque co que contiene una o más sentencias de código. Están definidos por su firma, que es el nombre superior de retorno y argumentos como este. El doble cálculo de impuestos doble valor de primera línea es el método. Firma, como dije, es la parte superior del valor. El método devuelve el nombre del método y los argumentos que se deben pasar al método para que éste haga su trabajo. El doble impuesto variable se declara en el método de cálculo de impuestos, por lo que es visible sólo para este método, y eso significa que el alcance variable se limita únicamente a este método. Aquí hay otro ejemplo. Esta es la clase de generador de saludo. El grupo generador de saludo contiene la variable saludo porque la variable de rejilla fue declarada a nivel de clase y no en un método. El alcance variable a la clase y cualquier método de la clase puede hacer uso de la variable saludo ya que el método de saludo de visualización sí nota la firma del método de saludo de visualización . Devuelve vacío, lo que significa que no o nada evitar el retorno. Tiempo significa que el método de gradación de visualización no devuelve ni en realidad no puede devolver un valor cuando se ejecuta. Aquí hay un ejemplo final tomado tener alcance variable de nuevo. Tenemos la clase de generador de saludo y la variable de rejilla sigue disponible. Pero el método de creación de cambios cambiará el valor de la variable saludo. Cuando una variable que está alcanzada en el nivel de clase tenga su valor cambiado, se cambiará para todos los métodos que hagan insoportable el uso de pactado. Por esta razón, siempre errar del lado de la precaución y limitar el alcance de cualquier variable que esté utilizando. Si realmente se necesita la variable en más de un método, puede estar justificada una declaración de nivel de clase. Pero si no se declara al nivel más bajo posible, lo que normalmente significa en el método, usar los modificadores de acceso variable son una forma de cambiar la visibilidad de las propiedades, que son algo similar a las variables, métodos e incluso clases enteras. el otoño, cualquier clase que crees no es visible. Esto se conoce como privado, igual que alcance variable. Siempre debes errar del lado de la precaución y obtener clases, métodos y propiedades la menor visibilidad que se necesita. Esta tabla a unos, los diferentes modificadores de acceso. Hay un par de términos que es posible que no reconozcas en esta tabla, y ensamblado es un compilar Dr Object. Hay dos tops diferentes. Procesar ensamblajes, ejes orry y biblioteca Singhalés o D L. Els e Excede pueden ejecutarse por su cuenta. Y dll zehr, utilizado por otros ensamblados como bibliotecas funcionales o, en otras palabras, código que podría ser ejecutado por otro ensamblado. Heredado eran la herencia es un principio clave de la programación orientada a objetos, o O lt. Significa que la clase puede heredar la funcionalidad de otra clase. Esto crea una relación padre-hijo. Tómate un momento y pausa el video para revisar la mesa. Si aún no lo has hecho, todos los modificadores de acceso enumerados en la tabla se pueden aplicar a las clases. Esto es importante porque la visibilidad de la clase afecta directamente la visibilidad de cualquier método, propiedades o variables contenidas en esa clase. Por ejemplo, si declaraste una clase como interna pero tienes un método público. Ese método se restringirá automáticamente a interno, ya que sólo otras clases del mismo ensamblado pueden ver la clase. En el siguiente video, comenzaremos a construir la pantalla de registro. 10. Pantalla de acceso: En este video, estaremos construyendo la pantalla de inicio de sesión, lanzaremos visual studio y haremos clic en el enlace Crear Nuevo Proyecto en la parte inferior de la sección de nuevo proyecto . Aquí podrás ver una lista de tops de proyectos. Seleccione el proyecto cónsul app dot net Framework que también puede ver un cónsul en dot net core project Top está bien, dependiendo de lo que haya instalado pero seleccionado la versión de dot net framework y en el cuadro de texto de nombre en la parte inferior del diálogo . Introduce el nombre a T m Tu versión podría tardar más o más en cargarse. Si esta es la primera vez que corriste visual studio, casi seguro tomará más tiempo. Podría ser de hasta 30 segundos. Esto es todo lo que obtenemos con un proyecto de consola Vacío estático Principal es lo que se conoce como el punto de entrada de la aplicación. Estático es algo nuevo que no hemos tocado antes. Cuando el modificador estático está unido a una clase, significa que la clase no puede estar en Stan Shih ated o creada. Esto también significa que en la memoria sólo podría haber una copia de una estática. El objeto es singular también clases estudiadas solo pueden tener métodos estáticos. Un método estático en una clase no estática, sin embargo, es un poco diferente. Significa que el método se puede llamar sin una postura, creando una instancia de la clase y el método principal que vamos a crear para string variables toe hold las indicaciones para el usuario. El primero es prompt de número de cuenta, y estableceremos el valor de esa variable Teoh número de cuenta interno. El segundo será prompt de número PIN, y ese valor estará en su número pin. Usando la línea derecha del punto de la consola, le pediremos el número de cuenta del usuario. A continuación crearemos otra variable de cadena llamada número de cuenta para almacenar su respuesta. Entonces solicitamos el número PIN con la línea derecha de punto cónsul, y vamos a crear otra variable de cadena llamada número pin para almacenar esa respuesta. Por último, vamos a añadir un punto de consola Reekie solo para evitar que el programa de accidente. Por ahora, esto es todo lo que tenemos que hacer. Necesitamos aprender algo nuevo antes de poder autenticar al usuario y permitirles entrar en el sistema. Ejecutemos la app y veamos qué obtenemos. Deberíamos conseguir un prompt para ingresar el número de cuenta y otro prompt en nuestro miembro pit, todo parece estar funcionando. En el siguiente video, aprenderemos sobre si las declaraciones. 11. Si otras declaraciones: En este video, estaremos viendo las declaraciones de FL. Si las declaraciones else también se conocen como lógica de control, a menudo se usan para controlar el flujo de una aplicación. Si una declaración es verdadera, vaya por este camino si no es ir por este otro camino. Si se utilizan declaraciones de lo contrario para evaluar expresiones de la lógica booleana, vamos a mirar una serie de ejemplos y pasar por una explicación de cada uno. En este ejemplo, estamos haciendo una comparación de dos variables A y B. El valor de estas dos variables no es realmente importante en este momento. El doble signo igual es lo que se conoce como el Operador de Igualdad. El Operador de Igualdad compara los valores del lado izquierdo con el lado derecho del signo doble igual. Un solo signo igual asignará un valor, pero un signo doble igual reforma una comparación entre la izquierda y el paseo. En este ejemplo, no hemos agregado paso. Si a y B son iguales, realizamos las mismas acciones que una última diapositiva. No obstante, si no son iguales, realizamos el código else en una sentencia if else en Lee, un conjunto de código ejecutará ya sea el código en el bloque F se ejecutará o el código y el bloque else se ejecutará. En este ejemplo, nuevo no hemos salido de paso. Si necesitamos probar más de una condición por separado, podemos realizar una declaración else if. Esta es diferente a la otra condición porque estamos probando para una segunda condición. Todavía no tenemos más bloque para atrapar cualquier condición que no se prueben específicamente, pero si los bloques son buenas maneras de evitar sentencias if anidadas, que es una sentencia if anidada dentro de otra, if statement anidada, si las declaraciones else pueden salir rápidamente de las manos y llegar a ser difíciles de leer y entender si te encuentras con condiciones que requieren anidadas. Si las declaraciones y hay un montón de razones por las que esto puede suceder, intenta encontrar una manera de hacer que el código sea más fácil de leer y entender tu futura voluntad. Gracias. En este ejemplo, estamos probando un valor booleano real en la primera sentencia if estaban diciendo literalmente, Si es cierto, sin embargo, quería mostrar este ejemplo porque la segunda sentencia tiene un poco de especia nota el exclamación al inicio de la prueba. En este contexto, el signo de exclamación significa no así en el segundo realmente estaban diciendo, si no cierto o falso. Un último ejemplo. Estas declaraciones son un poco más complejas, y la primera, si la declaración se estaban realizando dos pruebas diferentes, la doble y para Sam Means. Y así dice el estigma, si a es menor que B y C es menor que D, en la segunda s declaración, estaban realizando dos pruebas diferentes. Y si alguna de las dos son verdaderas, se ejecutará el código en la sentencia if. El diablo pat significa o así el segundo, if statement, dice que si B es mayor que A o C es mayor que D, esta es una lista de los operadores más comunes que verá igual Sue no es igual a mayor que mayor que o es igual a dos última cosa y menos que o igual dio. Hay muchos que no están en esta lista, sin embargo, pero en una lista exhaustiva sería casi imposible porque cualquier cosa que pueda ser evaluada hasta una prueba brillante puede ser un operador, y verás más de qué hay en esta lista a medida que avanzamos por el rumbo. Varios de estos operadores son más comunes con las pruebas numéricas, pero se pueden probar dos cadenas con iguales y no iguales. Justicia a los números puede ser En el siguiente video, trabajaremos en autenticar al usuario. 12. Autenticar al usuario: en este video, vamos a trabajar en autenticar a un usuario. Este será un video bastante corto porque lo que estamos tratando de lograr es muy sencillo. Por ahora, vamos a hacer lo más sencillo que funcione. Nuestro sistema solo permitirá a un usuario al inicio del método principal. Crear un valor de cadena. Para mantener el número de cuenta usaremos nombre it número de cuenta esperado y darle un valor de 1234 Crear otra cadena variable toe. Sostén el número de pin que estamos esperando y dale un valor de non non non non. En un video posterior. Crearemos la capacidad para que múltiples usuarios inicien sesión. Pero por ahora, esto nos da lo que necesitamos y nos permitirá progresar al final del método y antes de que la consola no lea la clave. Añadamos cualquier declaración if comparando el valor que hemos registrado para miembro de la cuenta con el número esperado de cuenta y el valor que registramos para el número PIN al número PIN esperado , agruparemos estas dos condiciones dentro y duplicaremos en para San. Si ambos coinciden, simplemente imprimiremos una declaración diciendo autenticación exitosa y en los Els. Si la autenticación falla, imprimiremos una declaración diciendo que la autenticación falló. Ejecutemos el programa. Entraré las credenciales correctas y probaré ese escenario 1er 1234 para el número de cuenta y cuatro nueves para el número de pin que funciona. Presionar cualquier tecla para salir. Ejecutemos nuevamente el programa y, ya sabes, credenciales inválidas solo para asegurarnos de que obtenemos el mensaje talado del resto bloque Todo Inter 9999 como el número de cuenta y 1234 es el número pin que también funciona. Genial. En el siguiente video, discutiremos propiedades, métodos y constructores. 13. Propiedades, métodos y constructores: En este video, estaremos discutiendo propiedades, métodos y constructores. Es posible que recuerden que mencioné en un video anterior que propiedades aire similar a las variables. Se trata de miembros de datos públicos a los que se puede restringir el acceso con modificadores como públicos o internos. No obstante, propiedades aire en realidad campos especiales llamados sucesores, su implementación se ve así en este ejemplo. Verá, tenemos una tienda de respaldo creada para el saldo de la propiedad con una variable llamada subrayado Las propiedades del balance pueden tener ya sea un centro juntos o ambos. El get de un inmueble devuelve el saldo de subrayado de la tienda de respaldo. El conjunto asignará un nuevo valor a la tienda de respaldo, balance de subrayado El get en lugar de una propiedad puede tener diferentes modificadores de acceso por lo que podría tener un get público y un conjunto privado una propiedad de lectura escritura tendrá tanto de get set read. Solo propiedad solo tendrá un get y muy raramente verá justo solo propiedades con solo un centro. Si una propiedad no necesita tener lógica dentro del getter o centro, puede crear una propiedad implementada en otoño como esta. Aquí, Ver, Sharp creará la tienda de respaldo de una propiedad para ti definitivamente es menos CO. Pero tiene sus limitaciones. Con una propiedad auto implementada, no tienes ningún control real sobre el valor de tu propiedad porque no puedes realizar ninguna parte superior de lógica o validación. Te animo a usar propiedades implementadas automáticamente cuando puedas, pero no te arriesgues si necesitas realizar algún tipo de lógica en tu tienda de respaldo o controlar lo que se asigna a la tienda de respaldo. El método manual más largo es el único método de ruta o co bloques que contiene una o más sentencias de código. Veré que el código afilado se ejecuta en el contexto de un método porque cada aplicación C sharp tiene el método principal del que hablamos en un video anterior. También en un video anterior, puede recordar que los métodos están definidos por sus firmas, que es el modificador de acceso, la parte superior de retorno, el nombre del método y cualquier argumento que el método requiera para hacer su trabajo. Los métodos de un objeto se pueden utilizar cuando son visibles con la sintaxis de punto. Por ejemplo, si tenemos una clase de calculadora, uno de los métodos que podría esperar ver en esa clase de calculadora será ad si nombramos nuestra instancia de la calculadora de clase de calculadora. Llamaríamos al método de anuncio con anuncio de punto de calculadora. En realidad podríamos pasar bastante tiempo hablando de métodos porque es un tema muy amplio. Pero voy a mostrar dos ejemplos para luego pasar por los constructores. En este ejemplo, el método get balance vuelve al balance de subrayado nivel de clase de arable. Este es un ejemplo bastante limpio. En el segundo ejemplo, el depósito de anuncios significaba que toma un solo argumento doble y luego como ese valor de cantidad al saldo de subrayado que de nuevo bastante sencillo y fácil de entender. Por último, los constructores constructores son en realidad métodos especiales que deben seguir un conjunto específico de reglas. En primer lugar, no pueden contener un top de retorno. En segundo lugar, el constructor debe tener el mismo nombre que sus constructores de clase padre aire llamado automáticamente cuando una clases y Stan Shih ated. Pero puedes controlar a qué constructor se llama especificando múltiples constructores con diferentes tops de argumentos. Los objetos también pueden tener diferentes instructores con diferentes modificadores de acceso. Un buen caso de uso para esto es que puedes proporcionar un constructor público extranjero Stan Shih ation de llamantes externos y proporcionar un segundo constructor interno para en postura. Ella ation dentro del mismo ensamble se puede también sobre constructores bajos. Esto significa que puedes tener cientos de constructores siempre y cuando cada constructor no tenga el mismo argumento, arriba especificado. En este ejemplo, tenemos un constructor sin ningún argumento especificado. Esto se conoce como el constructor predeterminado. Si no requiere otros constructores, no tiene que incluir realmente el constructor predeterminado. Si no estás haciendo trabajo dentro del propio constructor y se creará el constructor de caída para ti, un tiempo de recopilación. No obstante, si necesitas el constructor predeterminado y un segundo constructor no predeterminado, tienes que crearlo. Como muestra el ejemplo. En este ejemplo, también tenemos otro constructor que toma un argumento llamado balance del Double Top. Hace apenas un minuto, dije que podías tener múltiples constructores siempre y cuando cada constructor no tenga el mismo argumento, Top especificado. En este ejemplo, no pudimos crear un segundo constructor que sólo acepte un argumento si ese argumento fuera un doble top, incluso si nombraras la doble charla de manera diferente a la primera, podríamos, sin embargo, tener otro constructor que tomó un solo parámetro de cadena superior o una sola imagen de imprimación encima. En el siguiente video, vamos a ver caja de interruptores 14. Caso de interrupción: en este video, vamos a hablar de declaraciones dulces, declaraciones cambio o declaraciones de selección, como también se les conoce, decidirán a partir de una lista de subastas qué código ejecutar sentencias de cambio son muy similares a, si lo contrario, si lo demás declaraciones. Proporcionan una estructura bastante similar en que se puede crear una lista de criterios y tener esos criterios ejecutados de manera procesal. Hasta que se hayan encontrado uno o ninguno de los partidos. No obstante, las sentencias switch son más apropiadas que si lo demás, si las declaraciones else. Si estás probando tres o más casos diferentes, solo son más limpios de leer, más fáciles de crear y más fáciles de mantener. Switch statement, como mencioné ya puede evaluar una lista de criterios y decidir qué código ejecutar. Con base en ese criterio, las sentencias switch se componen de sentencias K, y cada caso debe romperse con la palabra clave brake, lo que detendrá la ejecución del switch o permitirá que caiga en la siguiente declaración de caso o cuando se hayan cumplido tus criterios. Simplemente puede regresar de la instrucción switch. Prefiero usar el freno, palabra clave y volver después de que se haya ejecutado la sentencia switch si es necesario. Pero esa es sólo mi propia preferencia personal. Verás ambos si te apegas a contar. Veamos algunos ejemplos en este ejemplo son sentencia switch está probando para una fruta favorita y cuando uno de los casos está satisfecho, asigna y texto a la variable mensaje. Como puedes ver tres diferentes cajas de frutas probadas al aire. Esto sería similar a, si de lo contrario, si de lo contrario. Si encuentro la declaración switch más fácil de leer y entender, también debe tomar nota de la palabra clave break al final de cada declaración de caso. Como dije antes, esto permite que la declaración de cambio caiga al siguiente caso. Pero lo que realmente está sucediendo es que las palabras clave break detiene que el resto de la sentencia switch se ejecute porque la sentencia switch se ha satisfecho. En este ejemplo, tenemos una sentencia extra al final, la clave predeterminada, donde realiza la misma función que una sentencia else en un bloque if. Si ninguno de los otros casos aire satisfecho, se ejecuta la sentencia por defecto. Tenga en cuenta que incluso la declaración do false tiene la palabra clave break. Este es el último ejemplo, y notarás que los casos se apilan aire en éste. El modo en que se apilan los casos significa que si es lunes, martes, miércoles, jueves o viernes, se ejecutará el mismo código mientras que sábado y domingo tienen un bloque de código diferente. En el siguiente video, volveremos a codificar y construiremos la pantalla del menú principal. 15. Pantalla de menú principal: En este video, vamos a construir la pantalla del menú principal. En la pantalla principal del menú será una lista de opciones disponibles para el usuario, incluida la retirada de depósitos. Las transacciones recientes muestran saldo y cierre sesión. Todavía no estaremos implementando ninguna de esa funcionalidad, pero crearemos métodos osos para ellos para que no tengamos que volver a visitar la pantalla de menú por un tiempo. Empecemos. El primero que vamos a hacer es crear una nueva clase porque nuestra principal estática metodista . Eso significa que todo lo demás en esa clase tendrá que ser estático también. Y esa realmente no es la mejor idea con la nueva clase. No obstante, en nuestro método principal, sólo tenemos que fundamentar que un objeto a su vez controla sobre él, correcto. Haga clic en el Explorador de proyectos y soluciones A Team y pase el cursor sobre el anuncio y luego encuentre el menú de clases . Adán. Si la clase no está en tu lista, podrías seleccionar agregar y la clase Nuevo Otoño debería estar en o cerca de la parte superior del diálogo. Nombrar el controlador de clase A TM. Esta clase no estará disponible fuera de este proyecto, por lo que usaré el modificador de acceso interno. Vamos a tener que pasar del código más del programa sobre clase CS a nuestra nueva clase de controlador 18 . Comience con las variables esperando número de cuenta y número de pin esperado. Después de la copia en la clase 80 y controlador, agregue el modificador de acceso profeta a ambas variables. También voy a agregar un subrayado al inicio de ambos nombres de variables, dependiendo de con quién hable. Esto a veces se considera una mejor práctica, y otros dirán que no. Creo que es en grandes programas. Es tranquilizador ver un nombre de variable subrayado porque puedo estar bastante seguro de que esta es una variable privada y no tengo que pensar mucho en el alcance variable . Ahora copia el resto de lo que está en el método principal de vuelta en la clase de controlador 18. Crear un método interno llamado display log in screen paste. El código restante. ese método, tendremos que fijar el número de cuenta esperado y el número PIN esperado de variables agregando un subrayado. A continuación, cree un método privado llamado menú principal de visualización. En este método, si aún no lo has adivinado, imprimiremos el sistema de menús sobre aplicación. El primer renglón será el número uno rodeado de corchetes y luego el saldo de la cuenta de chequeo de texto . El siguiente renglón será el número dos rodeado de corchetes en el depósito de texto, luego el número tres rodeado de corchetes en el retiro de texto tras retiro , el número cuatro rodeado de corchetes y el texto transacciones recientes. Por último, el número cinco rodeado de corchetes y el texto cierre sesión en la pantalla. Quiero un espacio entre el menú y el texto pidiendo al usuario que seleccione una opción. Esto se puede hacer mediante el uso de la consola de punto derecho sin ninguna tecnología especificada, luego la línea. Pídeles que seleccionen una opción y presione enter. A continuación, cree una cadena de nombres de variables. La opción seleccionada es igual a la consola no leer la línea. A continuación, utilizaremos una sentencia switch para probar el valor de opción seleccionado. Pero antes de ir demasiado lejos por ese camino, necesitamos crear métodos esqueleto para cada opción. Los métodos esqueleto son portadores de lugar para los métodos. El aire de los métodos ahí, pero la funcionalidad completa del método no es crear un método privado llamado pantalla saldo de cuenta de pantalla. En ese método, imprime el título en la parte superior del saldo de la cuenta de pantalla para este ejemplo, siguiente en la consola dot Reekie para que el método vaya a Paul's y podríamos asegurarnos de que todo esté funcionando último en una línea que llame a la pantalla principal método de menú. Esto nos permitirá volver al mini. Ahora vamos a crear el método de pantalla de depósito de display y tenía el mismo título lógico en el Consejo Superior. No Reekie y mostrar Mahaney hacen lo mismo para la pantalla de retiro de pantalla y otra vez para la pantalla pantalla de transacción reciente. También necesitamos un método de ley conseguido, pero es diferente al resto. Cuando llamen a cerrar sesión, despejaremos la pantalla con el punto de la consola claro y luego llamaremos a la pantalla de inicio de sesión de visualización. De vuelta en la pantalla del menú principal de la pantalla. También queremos despejar la pantalla cuando el metodista llamó por primera vez cuando estamos probando, será más difícil detectar problemas cuando cambiemos de pantalla. Si no tenemos una pizarra limpia con la que trabajar en el método display log in screen, cuando un usuario autentica con éxito en lugar de mostrar el mensaje de autenticación exitoso , queremos redirigirlos a la pantalla del menú principal. Y además del mensaje de autenticación talado, si no se autentican con éxito, queremos volver a cargar la pantalla de inicio de sesión llamada display log in screen. De acuerdo, finalmente, podemos terminar la declaración de caso de cambio que iniciamos hace unos minutos. En caso de uno, queremos mostrar la pantalla de saldo de cuenta llamando al método de pantalla de saldo de cuenta de pantalla . En caso de dos. Queremos mostrar la pantalla de depósito llamando al método de pantalla de depósito de pantalla. En caso de tres, queremos llamar a la pantalla de retiro de pantalla. En caso de cuatro. Queremos mostrar la pantalla de transacciones recientes. En caso de cinco. Queremos llamar al método de bloqueo a todos los demás casos o al caso predeterminado. Vamos a mostrar un mensaje de aire diciendo Selección inválida, Colocar cualquier clave para continuar, luego esperar a que el usuario responda con el cónsul dot Reekie en el archivo de programa dot CS. Necesitamos el cable arriba la clase de controlador de equipo A para tomar el control. Necesitamos fundamentar la clase de controlador 18 con la nueva palabra clave. Después llamamos a la pantalla de inicio de sesión de visualización en el controlador. Una última cosa en la pantalla de depósito display display, display pantalla de retiro, pantalla de transacciones recientes y mostrar saldos de cuenta, métodos de pantalla. Tenemos que borrar esas pantallas cuando se visualizan, así que estamos en una llamada clara de puntos de consola al principio de cada método. Ejecutemos la aplicación y veamos cómo funciona el sistema de menús en ella. 1234 para el número de cuenta y 9999 para el número pin y deberíamos ver el menú principal. Voy a correr por cada subasta para asegurarme de que lo que tenemos sean saldos de cuentas de trabajo , trabajos de depósito fino, trabajos de retiro, transacciones recientes, obras y registro que funcione. Salí con credenciales equivocadas y a ver qué obtenemos. Todos entonces son de 1 a 3 para el número de recuento y 999 para el pin. Por lo que realmente no me gusta la forma en que la pantalla de inicio de sesión no se aclara. Por ahora. Añadiré un consulado, están claros al principio, pero probablemente necesitaremos hacer otra cosa. A largo plazo, el usuario no podrá ver el mensaje fallido de autenticación, pero por ahora, sin embargo, tenemos un menú principal en funcionamiento. En el siguiente video, estaremos trabajando con cuerdas 16. Trabajar con cuerdas: En este video, aprenderemos a trabajar con cuerdas. Las cuerdas son en realidad una colección de personajes o autos. Conforme va el marco de red de puntos, las cadenas son inmutables, lo que significa que en realidad son de solo lectura. Si creas una cadena con un valor de alimento y luego modificas el valor de comida a barra, en realidad estás creando un nuevo objeto de cadena. Esto es importante y aplicaciones de uso intensivo de datos donde se está creando cadenas muy grandes. Otro tema grande para cuerdas y uno que vamos a explorar es el formateo. Las cadenas se pueden formatear de varias maneras diferentes. Echaremos un vistazo a un par de esas opciones de formato, entre ellas stream, concatenación, formato de punto de cadena e interpolación de cadenas. Primera concatenación Aquí hay un ejemplo. Como pueden ver, sólo estamos uniendo las dos cuerdas. Esto es lo que la concatenación de cadenas está uniendo dos cuerdas juntas para crear 1/3 nueva cadena , y la concatenación de cadenas afiladas C se hace con el signo más. Muchos principiantes usan este método extensamente, y eso no tiene nada de malo. Cuando comienzas por primera vez, es beber. Cat Nation es la más fácil de entender para los principiantes. En este ejemplo, estamos sustituyendo las variables color y animal por las del Senado. Como esperemos ver, las cosas ya están empezando a complicarse. Tenemos que preocuparnos por el espaciado. El cordón se rompe tres veces, y hay cuatro señales más para hacer todo bien. Solo se complica más a partir de aquí si utilizas la nación compacta como vas al método para formatear cadenas. Siguiente formato de punto de cadena formato de punto le permite crear una cadena y tenía marcador de posición para valores que normalmente son variables o propiedades directamente en el flujo. Y cuando se ejecuta la sentencia, los marcador de posición se reemplazan por los valores. Tu signo. El lugar olores son el índice o números de significado de Ordell, comenzando en cero e incriminando cada vez que añades una nueva sustitución. 0123 y así sucesivamente. En este ejemplo, seguimos imprimiendo barra de alimentos, pero se puede ver la función de formato de punto de cadena. El marcador de posición orginal son el rizado cero Curly Brace y Carly Brace. Una llave rizada Aviso donde el formato de punto de cadena y paréntesis es la forma en que se estructura el formato de punto de cadena . Tienes toda tu coma de cadena, y luego se requiere cada argumento orginal, separado por comas y todas las cosas para correr entre paréntesis. En este ejemplo, tenemos al zorro marrón. En su otra vez. Tenemos el cero orginal, que es el valor del color, y uno que es el valor para animal. El valor de la variable color se sustituirá donde esté el cero orginalmente, y se sustituirá el valor de la variable animal, donde el valor de un orginal es un ejemplo final de formato de punto de cadena. Y éste se dio cuenta de que la cuerda en realidad tiene 20 Ordell. En este caso, todas partes que exista el Wardle cero, se sustituirá el valor de la variable de color, por lo que el resultado final será el zorro marrón rápido salta sobre el perezoso perro marrón. Veamos una interpolación de cuerdas. interpolación de cadenas es muy similar al formato string dot, pero en lugar de tener orden Nell's, puedes simplemente ingresar la variable o derecho de propiedad en la secuencia en lugar de tener una lista separada por comas al final. Rodeado por la función de formato de punto de cadena, el signo de dólar al principio es la clave de que hay una captura. No puede haber espacio en blanco entre el signo del dólar y la cotización doble de apertura, incluyendo una línea, pies o espacio regular. Provocará un aire de tiempo de compilación en lugar de un corsé rizado. Orginal rizado orginal interpolación de cuerdas utiliza corsé rizado variable. Aquí está la frase de zorro marrón otra vez con interpolación de cuerdas. Me gusta mucho la interpolación de cadenas y las oraciones más pequeñas, aunque tenga que ingresar una variable más de una vez. Si se trata de una sentencia larga o necesita romperse en varias líneas, hay mejores opciones. Pero para cuerdas simples, la facilidad de uso de la interpolación de cuerdas tiene sentido. En el siguiente video, construiremos la pantalla de saldo de la cuenta de cheque. 17. Consulta la pantalla de equilibrio: en este video, vamos a construir la pantalla de balance de cheques. La pantalla de balance checa es probablemente la proyección más simple que construiremos, ya que todo lo que tiene que hacer es mostrar una cosa. Por esa razón, vamos a introducir el objeto de cuenta de usuario en este video. También haga clic derecho en el Proyecto A T m en Explorador de soluciones y agregue un nuevo nombre de clase la nueva cuenta de usuario de clase. Dar el objeto de cuenta de usuario y modificador interno en la clase de cuenta de usuario. Crear una propiedad de número de cuenta de cadena interna auto implementada con un get y un conjunto. Si recuerdas correctamente auto implemento. Significa que no tienes que preocuparte por crear un back in store para la propiedad. Además, crear una propiedad de número de pin de cadena interna auto implementada, también con un get y un conjunto, y finalmente crear una propiedad de doble balance interno auto implementada. Con un get in a set, podemos cerrar la pestaña de cuenta de usuario. Ya no estaremos modificando en este video. En la clase de controlador a t M, vamos a eliminar el número de cuenta esperado de subrayado y las variables de número pin esperado y reemplazarlas por una cuenta de usuario privada. Subrayar Cuenta activa soportable. Estrictamente hablando, requiere asignar y ningún valor a esta variable. Es solo un hábito en el que me he metido. Será no, independientemente de que no le asigne valor o no. Antes permitimos que el usuario inicie sesión. Sí necesitamos algún valor para la cuenta activa de subrayado. Portable. Crear un constructor interno para la clase A team controller. En este constructor, asignaremos un valor predeterminado al subrayado Active account object underscore. Cuenta activa es igual a nueva cuenta de usuario. Si luego golpeas la llave rizada de apertura, puedes asignar valores a las propiedades de los objetos dentro de las llaves, un signo la propiedad de número de cuenta el valor de 1234 la propiedad de número pin, el valor de 9999 y la propiedad de balance el valor de 1 61.23 Debes mantener los mismos valores porque si sigues con exactitud con los videos, podrás comprobar dos veces tu abrigo contra el mío después de la llave rizada de cierre en un semi Cohen. Ahora necesitamos arreglar las referencias para subrayar el número de cuenta esperado y el número de pin esperado de subrayado en el método display log in screen. Reemplace el número de cuenta esperado de subrayado por el número de cuenta de punto activo de la cuenta y reemplace el subrayado Número de pin esperado con el número de pin de punto de cuenta activa de subrayado en el método de pantalla de saldo de la cuenta Basta con mostrar el saldo de la cuenta activa de subrayado después del título. En la parte superior del método, voy a agregar una línea en blanco usando la consola dot right wine, luego crear otra consola sobre la línea correcta. Pero en esta línea, vamos a mostrar el saldo. Voy a usar la interpolación de cadenas aquí, Así signo de dólar. Cotización doble. Saldo de cuenta corriente Colón signo de dólar espacial. Se trata de un hijo de dólar real que se mostrará en la pantalla. Después abre Curly Brace subrayado cuenta activa saldo de puntos y cierre Curly Brace. No olvides el punto y coma. Después de mostrar el saldo, voy a agregar otra línea vacía y luego alinearme, diciéndole al usuario que presione cualquier tecla para continuar. Ejecutemos el programa y veamos cómo se ve en ella 1234 para el número de cuenta y 9999 para el número de pin. Echemos un vistazo a lo que hemos logrado. Recuerda que tenemos 161.23 para el saldo que funciona. En el siguiente video, veremos cómo funcionan las matemáticas y veremos corto. 18. Math: en este video, repasaremos los conceptos básicos de matemáticas y matemáticas afiladas de C, y C Sharp está cerca de las matemáticas que ya conocemos. Tiene los operadores estándar que esperarías, incluyendo suma con una resta de signo más con Amman Asan Division con una slash hacia adelante y multiplicación con un asterisco. The Order of operations and See Sharp trabaja bastante de cerca a lo que aprendiste en clase de matemáticas . En la escuela, todos los operativos se realizan a la izquierda llegan. También, las operaciones de multiplicación y división se producirán antes de las operaciones de suma y resta , y esas también trabajan operaciones de izquierda a derecha entre paréntesis se ejecutarán antes de que las operaciones fuera del aliento vean y también se ejecutan. Llegan a la izquierda. Echemos un vistazo a un par de ejemplos. En el primer ejemplo, tenemos un Siris de variables energéticas, y estamos estableciendo el valor de la variable W a un más B menos C más D menos e todas las operaciones en este ejemplo, o bien suma o resta. Entonces para calcular, simplemente trabajas de izquierda a derecha y realizas cada operación en su turno. Si miras la última línea, verás que el resultado es negativo. Dos. Si puedes trabajar eso cómodamente en tu cabeza o con una calculadora. Estás bien en tu camino. En el siguiente ejemplo, las cosas se estaban complicando un poco más. Este ejemplo tiene tanto la multiplicación como la división. Voy a resolver esto y ojalá puedas seguir adelante. Podemos llegar a la misma conclusión primero, ya que tenemos tanto la multiplicación como la división, tenemos que trabajar esas operaciones primero, y las hacemos dejadas para pudrirse. B Times D es ocho A dividido por E es uno gerentes siempre redondea automáticamente si es necesario. A plus D es de cinco. Ya que lo hemos resuelto todo desde ese punto en adelante, cinco menos uno son cuatro. Esperemos que pudieras seguir esa lógica. Podría ayudar si anotas la ecuación en papel y sustituyes los valores por las variables y haces la ecuación de un paso a la vez, y luego reescribes la ecuación después de cada operación, con el valor sustituido por completado operaciones en el siguiente ejemplo, también tenemos operaciones de multiplicación y división, pero tenemos paréntesis agrupando algunas de las operaciones dentro de paréntesis prevalecen sobre la multiplicación y división. El W variable se envía a un más E o siete menos B veces C o seis. El siguiente operativo, ya que ya hemos calculado las operaciones dentro de los paréntesis sería tiempo ver o seis dividido por E, que es uno entonces tenemos un más E o siete menos el resto de la expresión o uno, que es de nuevo seis. Si está teniendo problemas para entender, anote la ecuación y realice las operaciones de un paso a la vez, y vuelva a escribir la ecuación después de cada operación. En este ejemplo, también tenemos paréntesis, pero tenemos diferentes agrupaciones entre paréntesis, lo que significa que deben elaborarse todas las operaciones dentro de los paréntesis. Primero D más e es 10 veces B es demasiado 10 menos dos es ocho. A dividido por C es 2.66 Se puede confundir por la respuesta, que es a los banqueros. Matemáticas verían 2.66 redondeados hasta tres. Este no es el caso en C corto porque 2.66 no es tres. utiliza una función especial llamada piso, que siempre redondea hacia abajo. También hay una función llamada techo, que siempre redondea. Ahora Necesitamos discutir la asignación de valor. Considera este ejemplo y ve si puedes determinar por qué los resultados son como son. En pausa el video si necesitas tiempo extra. El motivo por el que el saldo sigue siendo 100 al final del ejemplo es que el valor de la propiedad de saldo nunca se le asignó realmente se utilizó como punto base en la operación de adición . Pero en realidad nunca se le asignó un valor a la propiedad del saldo. Si miras hacia el final de este ejemplo, puedes ver que en este realmente estamos asignando la propiedad de saldo. El nuevo valor. Esto corrige el problema de la diapositiva anterior. Echemos un vistazo. En un último ejemplo, C. Sharp tiene la noción de Osama Compuesto, que tanto realizará las matemáticas como establecerá el valor de la propiedad en cuestión. Se cuenta con una adición Compuesto el operador Simon así como uno para resta, multiplicación y división. Simplemente sustituirías el símbolo de multiplicación o división menos en lugar del símbolo más . El signo igual en realidad le está diciendo a C sharp que realice la operación y establezca el valor. Verás mucho el compuesto de operadores de Simon, así que ponte cómodo con ellos. En el siguiente video, construiremos la pantalla de depósito 19. Pantalla de depósito: En este video, estaremos creando la pantalla de depósito y el método de pantalla de depósito de visualización debajo de la línea de título. Voy a insertar una línea en blanco mediante el uso de la línea derecha del punto de la consola. A continuación, vamos a pedir al usuario que ingrese el monto del depósito y presione interior. Crea una cantidad de depósito de nombre variable de cadena y úsalo para obtener el valor que ingresa el usuario usando la consola dot reid line. Ahora vamos a hacer algo nuevo. Crear un tipo de variable doble cantidad con nombre. Necesitamos obtener el valor que se ingresa al usuario y hemos almacenado en la variable de cantidad de depósito en la cantidad doble soportable. Podemos hacer esto con doble punto try pars. Drop Ours es una función especial en muchos tipos de datos estándar, como Tía Double, decimal diurno y así sucesivamente. Las piezas de caída tomarán un valor. En este caso, el monto del depósito soportable, y si puede repartir el valor en el doble tiempo, lo asignaremos a una variable. Si no, no lo hará. Pero la parte importante es que no estamos lanzando excepción Notado estoy envolviendo la función Trop Horace en una declaración if. Si el valor se analiza correctamente, queremos ejecutar un bloque de código. Pero si no lo es, queremos ejecutar un bloque diferente. También sacado de la palabra clave out. Esto es lo que en realidad asigna el valor que era partes a la cantidad. Variable, como mencioné, es una palabra clave, y realiza una tarea especial. Ya sabes que los métodos pueden devolver valores, pero solo uno puedes usar en tus propios métodos también. Si necesita realizar un seguimiento de una variable o de un valor que el método está utilizando. Si el valor que ingresaron es válido, necesitamos agregar el monto al valor de saldo de punto de cuenta activa de subrayado. Si el valor no es válido, mostraremos un mensaje de error diciéndoles que el valor que se acercó no era válido y presione cualquier tecla para continuar a continuación en una consola. No lea la línea T, y luego necesitamos volver a cargar la pantalla de depósito llamando al método de pantalla de depósito de pantalla retorno en el bloque F. Tenemos que decirle al usuario que el depósito fue aceptado. Consola no escriba uno. Voy a usar la interpolación de cadenas aquí otra vez. Signo de dólar. Doble cotización las palabras monto depósito signo dólar Este signo de dólar en realidad se mostrará en la pantalla. Abrir tirante rizado cantidad cierre Curly Brace aceptado. Presione cualquier tecla para continuar, y supongo que necesitamos una línea en blanco entre el valor, el usuario interno y el mensaje. Entonces, en una consola, no se pudra la línea por encima del mensaje exitoso debajo del mensaje exitoso en una consola. No Reekie, por lo que la aplicación hace una pausa y pueden ver el mensaje. Y luego llamé al método de menú principal de pantalla. Ahora ejecutaremos la aplicación y veremos qué obtenemos. Inicie sesión como de costumbre y vaya a la pantalla de saldo de cuenta para comprobar el saldo. $161.23. Vuelve a la pantalla del menú y luego dirígete a la pantalla de depósito. Voy a depositar 10.67 dólares. Eso hará que nuestro saldo total $171.90. Si todo funciona correctamente, es una clave para volver al menú principal. Comprobemos la pantalla de saldo de la cuenta. Bueno, el monto es correcto, pero tendremos que ajustar la visualización del monto a la cuenta para un formato adecuado. Tengo una lista de bugs en la aplicación, y volveremos atrás y los arreglaremos todos en un video posterior. Por ahora, nuestros depósitos. Cree parece estar funcionando bien, y el siguiente video, estaremos mirando las reglas de negocio. 20. Reglas de negocios: en este video, vamos a estar discutiendo reglas de negocio. Las reglas de negocio se han convertido en un poco de sinónimo, un desarrollo de aplicaciones recientemente, parece que muchos desarrolladores están confundidos por lo que constituye una regla de negocio. Cual es la mejor manera de implementarlos y demás. También escucharás la lógica empresarial y las reglas de negocio utilizadas indistintamente. Esto es normal. Ellos son lo mismo. Entonces, ¿cuál es la regla de negocios? Las reglas de negocio pueden estar en muchas cosas diferentes. La validación de datos y la validación de entrada de usuario son definitivamente reglas de negocio, Pero hay límites. Validar un número telefónico no es realmente una idea novedosa, por lo que esa sola pieza de la operación no es una regla empresarial de sí misma. Pero el trabajo general que entra en validación definitivamente diferirá de aplicación a aplicación , por lo que la validación se compone de reglas de negocio. Toda lógica específica de su aplicación debe considerarse reglas de negocio para su aplicación. Cualquier lógica que no pudieras portar fácilmente a otra aplicación y tenerla tiene perfecto sentido hacerlo debe considerarse reglas de negocio. La mayoría de las aplicaciones tienen un flujo en ellas. Para completar una tarea, debes seguir una ruta específica para que los datos sean completos precisos y para que se complete cada paso de un proceso. Esto también se conoce como control, flujo o constricción de flujo esta ronda y la lógica que obliga a los usuarios a ese WRAL también debe considerarse lógica empresarial. Todas las aplicaciones tienen restricciones restricciones podrían ser cualquier cosa, desde el acceso administrativo a operaciones específicas de la cuenta, hasta controlar lo que un usuario tiene permitido hacer y lo que no se le permite hacer y todo debe ser considerado reglas de negocio. Cualquier lógica que influya en el comportamiento de los usuarios debe considerarse reglas de negocio. Esto puede ser la validación de datos que impide que el usuario presente un formulario hasta que se completen todos los campos requeridos o que solo usuarios específicos sean capaces de acceder a áreas específicas de la aplicación. Por último, todas las reglas de negocio deben evaluar hasta un valor booleano allí ya sea verdadero o falso. Entonces, lo que no constituye un código estándar de regla de negocio que podría encontrarse en casi cualquier otra aplicación, por ejemplo, por ejemplo, código que maneja bastante el procesamiento de texto y el acceso a datos. Todas las aplicaciones tienen que hacer esto. En cierta medida, código Onley que está especializado para su aplicación particular debe considerarse una regla de negocio. En el siguiente video, construiremos la pantalla de retiro 21. Retirar pantalla: En este video, vamos a construir la pantalla de retiro y el método de pantalla de retiro de pantalla. Estamos bajando por un camino muy similar que viajamos en el video de depósito. En primer lugar, usemos la línea derecha del punto de la consola para pedir al usuario que ingrese el monto del retiro antes de que olvide lo que hay en una línea en blanco sobre ese problema. A continuación, agregue una variable de cadena llamada cantidad de retiro para almacenar la respuesta del usuario usando punto de consola Riegel en crear una variable doble cantidad llamada. Tenemos que conseguir el valor de la cantidad de retiro en la cantidad soportable. Nuevamente, usaremos autos de doble caída de puntos con la variable de doble cantidad como argumento out. También, volveremos a envolver la trampa. Nuestra declaración en un comunicado if, sin embargo, necesitamos crear una regla de negocio en el bloque F, y probablemente puedas adivinar la razón por la que no podemos permitir que los usuarios retiren más de lo que tienen . Entonces tendremos una declaración si anidada en el caballo trampa. Si bloque que comprobará la validez de la transacción. Si el valor de la variable de retiro es menor o igual al valor de balance de puntos de cuenta activa de subrayado , podemos permitir la transacción y deducir el valor de la cantidad de la cuenta activa de subrayado sobre el valor equilibrado. Tenemos que proporcionar un mensaje diciendo que el retiro es exitoso y la pulsación de cualquier tecla para continuar y luego mostrar la pantalla del menú principal. También necesitamos una línea en blanco entre la entrada de los usuarios y el mensaje exitoso. Si el valor que ingresa el usuario no es válido, sin embargo, necesitamos rechazar la transacción en el bloque else del anidado, si en una línea en blanco. Y luego otra consola punto línea derecha para mostrar el mensaje diciéndole al usuario que la cantidad que ingresan excede el saldo de la cuenta y una prensa. Cualquier clave para continuar luego cónsul punte Reekie a la ejecución del programa de Paul y luego mostrar el menú principal en el bloque else de la declaración de caballos Trop. Tenemos que crear una línea en blanco, el cónsul punto línea derecha y luego un mensaje de aire, diciendo que la cantidad que ingresaron no era válida y para presionar cualquier tecla para continuar, necesitamos provocar la aplicación para que los mensajes de aire sean visibles y ellos llaman método de pantalla de retiro de pantalla y veo un error y es posible que ya hayas recogido en él. Tengo mi lógica invertida en el nido en sentencia if. Si el monto es menor que un retiro para reprocesar el retiro, tengo mayor que o igual a. Veo otro tema también, después del mensaje diciéndole al usuario que el retiro fue exitoso. Tenemos que Paul's Así que otro punto consola Reekie allí. Ahora podemos ejecutar la aplicación y echar un vistazo a los resultados. Entraré con las mismas credenciales e iré directamente a la pantalla de retiro. Voy a retirar 100 dólares. Eso se ve bien. Ahora vamos a revisar la pantalla de saldo de la cuenta. Deberíamos tener 61.23 dólares y lo hacemos. Ya que bajamos a 61.23 dólares. Tratemos de retirar otros 100 dólares. Deberíamos recibir el mensaje aéreo, y lo hacemos. Tratemos de retirarnos sobre inválida una montaña. Entraré galimatías en ver qué pasa. Sí, exactamente lo que debería pasar En el siguiente video. Estaremos trabajando con un aumento y listas 22. Arrays y listas: En este video, estaremos discutiendo un raise y listas y tocar brevemente sobre genéricos, una colección secuencial de subida o tamaño fijo de elementos del mismo tiempo. El tamaño debe declararse cuando se levanta creado, y ese tamaño no se puede cambiar. A partir de ese punto, secuencial significa que su índice se basó en partir de un cero. El primer elemento se puede acceder con cero orginal. El segundo elemento, con uno orginal, el tercero con los dos orginales y así sucesivamente. Una carrera puede ser creativa en cualquier momento, incluso objetos, pero debes ser lo más restrictivo posible a la hora de crear un aumento. Echemos un vistazo a algunos ejemplos. En este primer ejemplo, ha creado una nueva matriz de streams denominada First Names con el tamaño de tres. Entonces estoy configurando el valor del primer elemento en la matriz para casar el segundo elemento en la matriz con Tom y el tercer elemento en la matriz con Nancy. En la siguiente sección, estoy usando la interpolación de cadenas para imprimir los valores de cada elemento en la consola. Como puede ver, los valores en la matriz se pueden establecer haciendo referencia al elemento específico en la matriz, utilizando el hijo orginal y el hijo igual, y el valor almacenado en la matriz puede ser referenciado de la misma manera sin el hijo igual. En este siguiente ejemplo, la inicialización de la matriz se realiza de manera completamente diferente. El aire de valores dijo automáticamente, pero los resultados son exactamente los mismos. Todavía podemos acceder a los elementos de la matriz, como hicimos en el ejemplo anterior. El único que cambió fue la forma en que estaba en Stan Shih ated. Todavía queda mucho por aprender sobre un aumento, pero ya hemos aprendido lo que necesitamos saber por ahora. De hecho, vamos a estar usando un aumento en absoluto. Pero funcionan tan bien con esto, y vamos a estar usando esos. Entonces ese es el siguiente tema. Las listas forman parte del concepto de tiburón marino conocido como genéricos. Los genéricos se construyen alrededor de parámetros superiores. Echa un vistazo al siguiente ejemplo. El código de la izquierda es un extracto simplificado de un patrón de diseño conocido como el patrón genérico repositorio. El código en la roca es un contexto DB desde el punto en un mapeador relacional de objetos llamado Entity Framework. El código de la izquierda tiene la capacidad de trabajar con cualquier clase. Desde el lado derecho. Hay seis tipos diferentes para encontrar en el lado derecho, y sin genéricos, te quedarás con pocas opciones de que ejecutar mucho código duplicado para manejar cada uno de los seis. Y recuerda que este ejemplo está muy simplificado. No es raro que un sistema de negocios tenga 50 o más objetos que tendrían que estar listados en el paseo, y he trabajado en proyectos con más de 300 incluso 500 independientemente de cuántos fuera y que agregues , el código en la izquierda no se pondría más ni más complicada. Ese es el verdadero poder de los genéricos. Con este siguiente ejemplo, notarás que tenemos una variable declarada de lista superior, y esta lista sólo aceptará streams. Esto se denota dentro de los corchetes angulares. cepa podría cambiarse a literalmente cualquier cosa una persona, una dirección en orden y así sucesivamente. Esta lista funciona exactamente igual para cada vez. Tengamos un poco de poder. Como se puede ver, podemos sumar a la lista. Más importante aún, no tenemos que saber cuántos fuera de la lista va a contener. Podemos simplemente seguir agregándolo sin que nada cambie aviso de que todavía podemos acceder a los elementos de la lista igual que podemos en la matriz con las referencias orginales. El motivo por el que presenté un levantando este video, pesar de que no los vamos a utilizar en absoluto en la aplicación A t M es por elevar el trabajo de lista. Genial juntos, en este ejemplo, notaron que no hemos array declarado, y tenemos valores firmados a la matriz. Después lanzamos fácilmente la lista Teórica A, y somos ellos trabajando con una lista de nuevo. También va al revés. En este ejemplo, estamos lanzando una lista a una matriz. Hay muchos, muchos métodos en el framework dot net que devuelven una matriz de elementos. Es importante saber que no estás atascado con esos rayos o que es un gran esfuerzo meter la matriz en algo con lo que fácilmente puedes trabajar y manipular. Literalmente hay montañas de más información que vamos por un aumento. Escucha genéricos, pero como principiante, eso debería darte una base sólida para construir brazo. En el siguiente video, estaremos mirando bucles 23. Bucles: En este video, estaremos discutiendo bucles. Los bucles son un poderoso constructo y ver afilado. Permiten reiterar o pasar por átomos y una lista de matriz o colección e inspeccionar y procesar cada uno. También te permiten esperar en un conjunto específico de condiciones para ser lo que estás esperando antes de proceder. Existen varios tipos diferentes de bucles, incluyendo mientras que para cada cuatro y hacer de los cuatro tops diferentes. Sólo estaremos usando el para cada bucle en nuestra aplicación, pero quiero mostrar un breve ejemplo de los cuatro tipos diferentes porque cualquiera de los cuatro podría ser utilizado para nuestros propósitos. Elegí el para cada bucle porque tiene más sentido. Empezaremos con las cuatro licencias. El cuatro bucle tiene tres partes el contador Las pruebas se realizaban para determinar cuándo debía dejar de ejecutarse el bucle y los incrementos. El contador se puede decir a cualquier número y no tiene que ser cero. Podríamos haber empezado con la misma facilidad a una. En cambio, la prueba puede ser cualquier cosa que se pueda medir. Podría ser el número de elementos en una matriz o lista en nuestro caso. Simplemente queremos pasar por el bucle cinco veces e imprimir el valor de I en cada iteración del bucle. Por último, se tiene el incremento. Cada vez que pasamos por el botín, el valor de yo seré incriminado por uno Hi plus ¿eso para nosotros? Observe también que específicamente estamos asignando ese incremento a la variable I. El bucle se encarga de eso por nosotros. A continuación tenemos el do while luv el do while loop se ve muy diferente al four loop do es en realidad una declaración completa En este bucle, la condición que estamos probando se hace después de que se ejecuta la sentencia do y no antes , al igual que el bucle de cuatro también notamos que tenemos que incrementar lo verbal que estamos probando por nuestra cuenta. El botín no se ocupa de ese bosque. Nosotros sí, sin embargo, obtenemos exactamente los mismos resultados. Después está el azul salvaje. El loop while es muy similar al do wild blue Pero el salvajemente realiza una prueba y luego ejecuta el aviso de declaración otra vez que tenemos que cuidar el incremento por nuestra cuenta y que nuestros resultados son de nuevo exactamente los mismos Finalmente, tenemos el para cada bucle. El bucle de cuatro h es diferente a los demás, y este es el loop top que estaremos utilizando en el programa. No hay un incremento involucrado en el para cada bucle. En cambio, el para cada bucle se construye específicamente para un raise, colecciones o listas. En este ejemplo, estamos buceando sobre una lista de imagers, pero podríamos estar buceando sobre una lista de personas o una matriz de cadenas, y se aplican las mismas reglas básicas. Tenga en cuenta que estamos asignando una variable de I al gerente actual en la lista. Estamos iterando sobre la parte superior, especificado para que la variable tenga que coincidir con la parte superior contenida en la matriz o lista, y dentro de las cuatro cada sentencia, tiene acceso a esa herida, y se podría trabajar con ella dentro del piso. Cada declaración y que casi cubre pierden. Son poderosos, y a menudo la parte más difícil es decidir cuál es lo mejor para ti factura de cuatro pulgadas específicamente para una lista de pasas. Pero los otros tres se pueden usar indistintamente. En el siguiente video, construiremos la reciente pantalla de transacciones 24. Pantalla de transacciones recientes: en este video, vamos a construir la pantalla de transacciones recientes. El primero que tenemos que hacer es introducir la idea de las transacciones en nuestro programa. este momento, no estamos rastreando depósitos y retiros, así que ahí es donde empezamos. Haga clic derecho en el Proyecto A T M en el Explorador de soluciones y agregue un nuevo nombre de clase. La transacción de usuario de clase, al igual que las otras clases u objetos que hemos introducido en el programa, marcó la clase como interna. Necesitamos agregar un par de propiedades al objeto de transacción de usuario Genial. Una transacción de cadena interna. Propiedad superior con un get y un conjunto, luego una propiedad diurna interna llamada Time Stamp con un get y un set last, crear una propiedad interna de doble cantidad con un get y un conjunto. Puedes cerrar esta clase ahora necesitamos almacenar estas transacciones en algún lugar. El mejor lugar para hacer eso es el objeto de cuenta de usuario en una lista genérica interna de transacciones de usuario y nombró a las transacciones de propiedad con un get in a set. Si intentas acceder y agregar o eliminar objetos de una lista que no ha sido atada por Stan Shih , obtendrás una excepción sin referencia. Por lo que necesitamos instancia que se lo comió antes de que intentemos usarlo. Crear un constructor interno para el objeto de cuenta de usuario y dentro de ese constructor, establecer la propiedad de transacciones en una nueva lista genérica de transacciones de usuario. Adelante y cierra la clase de cuenta de usuario. No lo vamos a necesitar de nuevo. Tenemos que empezar a recolectar las transacciones en el método de pantalla de depósito de display en el caballo trop de doble punto. Si el estado de cuenta bloquea después de alertar al usuario de que el depósito fue exitoso, necesitamos agregar una nueva transacción a nuestra lista. Subrayar cuenta activa las transacciones de puntos no se suman. Y dentro del método de anuncio, vamos a crear una nueva transacción de usuario y dijo las propiedades de la clase en las llaves llaves como lo hemos hecho antes. El importe de la propiedad se establecerá en la variable de importe privado. La propiedad del estado de tiempo será un punto diurno tal ahora, y la propiedad superior de la transacción se establecerá en el depósito de cadena. Voy a arreglar el espaciado, y luego necesitamos crear la misma funcionalidad en la pantalla de retiro de pantalla inmediatamente después de la retirada. Mensaje exitoso. Necesitamos crear código casi duplicado, como teníamos en el método de depósito. La única diferencia será la propiedad superior de la transacción. Será retiro en lugar de depósito. En este punto, ahora estamos recolectando las transacciones, pero necesitamos mostrarlas en el método de pantalla de transacciones recientes de visualización debajo del título . Insertar una línea en blanco. Después necesitamos mirar a través de las transacciones del usuario en el subrayado. Cuenta activa, no lista de transacciones. Usaremos un cuatro cada bucle para hacer esto por cada transacción de transacción de usuario. En Underscore cuenta activa transacciones de puntos en la siguiente línea creada, Abriendo Curly Brace y golpear la tecla Enter. Necesitamos escribir algún contenido útil a la pantalla dentro del bucle. Usaré la interpolación de cadenas para esto dentro del método de línea derecha punto cónsul Call. Mostraré el día de la transacción, luego el monto y luego la parte superior de la transacción. Pausa el video. Si necesitas ponerte al día, tendrás que asegurarte de que tu interpolación de cuerdas sea correcta. Debajo del Para cada bucle, escribiré una línea en blanco y luego otra línea que le dice al usuario que presione cualquier tecla para continuar. Esto debería darnos toda la funcionalidad que necesitamos. Ejecuta el programa e inicia sesión como de costumbre, ve a la pantalla de depósitos. Vamos a crear una transacción por $192.19. Vuelve a la pantalla de depósitos y crea otra transacción por $57.14. Acude a la pantalla de retiro y creó retiro por $22.19 y luego otro retiro por $119.45. Si vamos ahora a la pantalla de transacciones recientes, deberíamos tener cuatro transacciones mostradas, y ahí están. Bien. En el siguiente video, tendremos una introducción para enlazar. 25. Introducción a LINQ: en este video, te daré una breve introducción a Link Link significa lenguaje Consulta integrada, que probablemente no te diga mucho. Si aún no conoces SQL, deberíamos empezar con la parte de consulta. Las consultas son declaraciones emitidas a una base de datos que crean, recuperan, actualizan o eliminan datos. Esto también se conoce como multitud crear recuperar, pero creen que estas cuatro operaciones son las mayores. Tú, como desarrollador, realizarás al usar una base de datos, y son el centro de casi cualquier aplicación de negocio que vas a crear. Enlace permite realizar este tipo de operaciones en código contra la base de datos utilizando un mapeador relacional de objetos o O R N, como vinculado a secuela o cualquier marco o contra objetos en colecciones de listas de memoria o un raise. Parte de la belleza de Link es que hay unas especificaciones en los usos de Microsoft, y el código que escribirías que accedería a la base de datos del servidor de Sequel sería el mismo o muy, muy cerca del coach usaría para acceder a Oracle Database los proveedores de enlaces se pueden escribir para otras tecnologías de bases de datos o incluso servicios Web. Eso también coincidiría con lo que se usaría para acceder a las bases de datos. El valor real del link, aunque en mi opinión, es que hace mucho más fáciles nuestros trabajos como desarrolladores. Asumir el siguiente escenario. Tienes una lista de objetos de usuario en la memoria. Es necesario pasar por esas cuentas y extraer las cuentas que tienen un saldo de $100 o más. Como puedes ver, necesitaríamos crear un bucle que pasara por la lista y extraiga las cuentas con el saldo requerido. Entonces necesitaríamos almacenar esas cuentas en una segunda lista cuando se descubran para que pudiéramos hacer cualquier acción que se planee o realizar la acción en línea. No obstante, con Link, esto se vuelve mucho más fácil. Simplemente escribimos una consulta que nos dará la lista de cuentas con un saldo superior a 100 dólares almacenar esos artículos en una segunda lista. Portable. El código es mucho más limpio, pero en la superficie parece más complicado. Tenemos que hablar de expresiones lambda, expresiones lambda o lo que se ve en los paréntesis de desgaste en este ejemplo. Ya que estamos trabajando con cuentas de usuario, X es una cuenta de usuario. Si estuviéramos trabajando con gerentes, sería un entero y una cepa. Si estuviéramos trabajando con cepas, entonces tenemos la flecha gorda. Esto es lo que hace a una Lambda Lambda después de la flecha gorda. Tenemos nuestra expresión que evaluará los ítems en la lista de cuentas y sacará los ítems que coincidan con nuestra consulta al final. Observe que estoy lanzando los resultados a una lista. Esto puede parecer extraño, ya que estamos empezando con una lista, pero cuando ejecutas una consulta contra la colección o lista, se convierte en un muro de acuario genérico en este caso y caminan ponible de cuentas de usuario. Link es una poderosa herramienta en un kit de herramientas de desarrolladores y te ahorrará muchas, muchas pulsaciones de teclas. Dónde está una sola función y una que probablemente usarás A menudo hay muchos, muchos más un solo de este tipo, que evalúa una expresión Lambda y devuelve uno y sólo un Adán. Pero si hay más de uno, verá una excepción. También verás una excepción si no hay una que coincida primero con los criterios, que evaluará una expresión de tierra y devolverá el primero de ese partido último, que evaluará una expresión de tierra y devolverá el último fuera de ese orden de partidos por que reordenará tu audiencia en función del valor de un campo en los objetos de la colección. Thor, que simplemente ordenará la espada artículos es a la vez más simple y más complejo. Que orden por espada te permite ser realmente creativo en la forma en que ordenas tus elementos distintos, lo que simplemente devolverá Los objetos distintos en la lista de colección o matriz contiene determinarán si existe un objeto en la lista. Existe realizará la misma funcionalidad de contiene pero evalúa expresión Orlando. En lugar de buscar un objeto exacto. Take devolverá el número de objetos especificados, y skip saltará sobre un número especificado de objetos. Realmente espero que puedas ver la importancia de Lincoln, tus esfuerzos de programación y cómo pueden ser vory invitaciones para que sepas que en el siguiente video, vamos a siguiente video, construir soporte en la aplicación para múltiples usuarios 26. Supporting a más de un usuario: En este video, crearemos la capacidad para que la aplicación soporte a más de un usuario. Esto va a requerir mucho menos trabajo de lo que se podría pensar a nivel de clase, en una lista genérica privada de cuentas de usuario y nombrarlo cuentas de subrayado. Eliminar el código actual en el constructor del controlador A. T M y dijo la variable de cuentas de subrayado a un nuevo EST genéricamente de cuentas de usuario delgada. Tenemos que añadir algunas cuentas a la lista, así que tenemos algo con lo que trabajar. Voy a añadir la misma cuenta que hemos estado utilizando hasta este punto. Con un número de cuenta de 1234 y opinión de 9999 estableceré el saldo $241.95 para la segunda cuenta. Y así puedo recordar fácilmente cuáles son los números de cuenta. Le daré un número de cuenta de 2345 y la misma pluma cuatro nueves para este. Pondré el saldo en 42.91 dólares. Tendré una cuenta más y dijo la cuenta número 23456 y cuatro nueves para la pluma. El saldo de esta última cuenta será de $124.66. Eso es realmente todos los datos que necesitamos para demostrar que múltiples usuarios están trabajando ahora por encima la sentencia if en el método display log in screen. Después de leer el número PIN introducido por el usuario, declarar una variable de cuenta de usuario llamada cuenta. Y pongamos eso para subrayar las cuentas puntan solo o soltero por defecto o para caer actos igual que solteros con el beneficio agregado de que no se lanzará ninguna excepción. Si la lista no contiene las credenciales de coincidencia correctas en su lugar, la variable de cuenta será no en los huevos superiores de llamada única o predeterminada. Esto significa que la variable estaba trabajando con en esta función será referenciada con el nombre de la variable X, luego la flecha gorda. Y tenemos que comprobar que el número de cuenta ex thought coincide con el valor que hemos leído de la entrada del usuario. Por lo que X dot número de cuenta doble es igual al número de cuenta. Por supuesto, el número de cuenta por sí solo no es suficiente. También necesitamos asegurarnos de que el número de pin en X también coincida con lo que se ingresa al usuario. Por lo que necesitamos el grupo que con el número de cuenta prueba doble y para San y luego x punto número pin igual a número pin, el único o predeterminado todo lee número de cuenta ex punto igual a número de cuenta y X stop it number igual a miembro PIN. A continuación, necesitamos eliminar los criterios por los que actualmente estamos probando y reemplazarlo por. El cuenta no es igual o signo de exclamación igual. No, no, como recordarán, no es nada. Si la cuenta no se sabe, necesitamos establecer la variable de cuenta activa de guión bajo a la cuenta verbal que acabamos de crear , así que agrega eso encima del método de pantalla de menú de mayo de pantalla. Por último, en el método log out, necesitamos establecer el valor de la variable de cuenta activa de subrayado para saber antes mostrar la pantalla de inicio de sesión, ahora podemos ejecutar la aplicación inducing testing. Entraré primero con un conteo. 1234 Si voy a la pantalla de saldo de la cuenta de cheque, debería ser de $241.95 y se pregunta a continuación, iniciaré sesión con la cuenta 2345 y haré lo mismo. El saldo debe ser de 42 dólares. 91 centavos y definitivamente parece que todo está funcionando. Ahora podemos entrar y salir de la aplicación, y la aplicación soporta múltiples usuarios. En el siguiente video, vamos a estar viendo los nombres. 27. Ende: en este video, estaremos discutiendo los nombres. E Newme es la abreviatura de enumeración, que es una lista distinta de constantes nombradas llamada You Numerador List. He Nunes Avery útil cuando necesitas restringir un valor de propiedad a una lista conocida de opciones , quiero mostrar un breve ejemplo. Por lo que no hay misterio sobre lo que estoy describiendo en este ejemplo. Hay una simple Renovación declarada con nombre Vehicle Top. El nombre tiene tres valores potenciales. Coche, SUV y camioneta. En la clase vehicular registrado, verás que hay una variable nombrada top of vehicle, y la parte superior es nuestro vehículo top E No. Por defecto, los valores de la lista vespertina no tienen energía ni valor. A partir de cero, estos valores aumentaron en un enorme tiempo. Adán se agrega a la lista en este ejemplo. Tengo creado un objeto vehicular y asignado la parte superior del camión de valor vehicular. Entonces estoy imprimiendo el valor tanto del gerente como del valor de cadena del punto del vehículo top a vehicular valor. Como puedes ver, podemos lanzar el valor a un filo y obtener ese valor así como el arroyo. Me doy cuenta de que no hemos hablado de lanzar valores desde un día para hablar con otro, pero deberías poder contar lo que está pasando. También puedes cambiar la enumeración del horno de valor energético y asignar tu propio valor. Considera este ejemplo. Como pueden ver, le he asignado un valor de tres a la tarjeta, sexto al SUV y nueve al camión, y se puede ver la prueba de lo que he hecho en la salida los valores del camión aún impresos . Pero los valores energéticos y cambian a nueve. Este es un nombre libre, pero espero que puedas ver por qué querrías usarlos en el siguiente video. Estaremos arreglando algunos bugs en tu aplicación. 28. Corrección de errores: en este video, estaremos arreglando algunos errores en la aplicación y agregando una mejora Necesito venir limpio. Cuando estás creando software, es vital que no escribas nuevo código y crees nuevas características en una aplicación hasta que se corrijan todos los errores. Si tienes alguna opción, es una decisión muy lógica. Si tienes bugs existentes, es posible que estés escribiendo código el depende de ese código de buggy. Eso significa que el error simplemente sigue haciéndose cada vez más difícil de arreglar y en aplicaciones comerciales , más caro de arreglar. Un oleaje En los últimos videos, hemos estado haciendo justamente esto, pero no es un hábito que buscaría cultivar si fuera tú. El primer error que vamos a ver está en el menú principal. Si un usuario no selecciona una opción válida, el programa tendrá que salir y recargarse. Déjame hacer una demostración de eso realmente rápido. Como pueden ver, si entro un valor inválido como seis, la pantalla simplemente se sienta ahí. Tenemos que arreglarlo recargando el menú. Después de que se ingresa una selección no válida en el método de pantalla del menú principal de visualización dentro de la sentencia switch y la opción predeterminada después de la línea clave de la consola dot reid. Solo necesitas volver a llamar a la pantalla principal en tu método de pantalla. Si volvemos a ejecutar la aplicación, el comportamiento debe ser arreglado. Voy a probar seis otra vez. El menú se recarga. Bien. Voy a probar otro 19 Vale, voy a conseguir el siguiente bug es bastante sencillo también, y realmente no es un bug, pero más bien y realmente no es un bug, un hueco en la pantalla de depósito. Si depositas $10 estaban mostrando algo de mensaje que se aceptó el depósito de $10. No obstante, en la pantalla de retiro, sólo mostramos un mensaje diciendo que el retiro fue exitoso y que el mensaje no tiene la cantidad en dólares. Demostremos eso realmente rápido. Voy a empezar con el mensaje que se muestra al hacer un depósito, ver el valor que se imprime en el mensaje de confirmación. Ahora iré a hacer un retiro. Podemos contrastar el mensaje exitoso de depósito. Con el mensaje exitoso de retiro y el método de pantalla de retiro de pantalla, solo necesitas alterar el mensaje exitoso para que coincida con lo que muestra el green de depósitos. Nosotros también podemos usted la interpolación de cuerdas. Ejecutaré nuevamente la aplicación y solo me aseguraré de que la funcionalidad esté funcionando como pretendía. Parece estar bien. OK, esta siguiente parte es para el realce. este momento, estamos usando cepas para crear transacciones con la palabra depósito y retiro. Tenemos que cambiar eso. Para usar un correo electrónico, derecha, haga clic en el 18 y Project en Solution Explorer y agregue un nuevo nombre de clase la transacción de clase superior una vez que esté abierta en un modificador interno para la clase, y luego quite la palabra clase y reemplace ella con velada en la lista de Innu Marais Shen. Simplemente agregue depósito y retiro como opciones. Ya puedes cerrar este otoño y abrir la clase de transacción de usuario. Sólo necesitamos cambiar la transacción. Top property Top transacción ahorro de tiempo. Cierra también este archivo. Ahora de vuelta en la clase de controlador A T M en el método de pantalla de retiro de pantalla. Solo necesitamos reemplazar el retiro de texto por retiro de punto superior de transacción, y tenemos que hacer lo mismo y el método de pantalla de depósito de pantalla mediante la sustitución del flujo de depósito por parte superior de la transacción, no deposite. Esos deberían ser los únicos cambios requeridos para esta mejora. El texto de la transacción arriba ella todavía por ahora como depósito y retiro. De acuerdo, eso funciona bastante bien. El siguiente error que vamos a ver es un tema de exhibición. cualquier momento que imprimamos un valor en dólares en la pantalla, necesitamos ese valor debidamente formateado a la moneda. Voy a correr por algunas pruebas para que puedas entender el tema. Voy a depositar $10. Lo que nos gustaría ver aquí es una moneda sambal tan 0.0 Formateado correctamente. Voy a correr por un par de transacciones más para asegurarme de tener en mi mente exactamente lo que necesitamos. En cada caso, queremos la moneda sambal ya sea al frente de la parte trasera del dólar cantidad decimal sin cantidad, independientemente de lo que estemos mostrando. Ya que estamos mostrando moneda en la pantalla y la mayor parte del mensaje como pantalla de depósito display display display, pantalla pantalla de retiro, transacción reciente pantalla de cuenta, pantalla de saldo, necesitamos usar un único método largo al que podamos llamar desde cada uno de estos métodos para obtener el formato adecuado para que no tengamos código duplicado en todas partes, y si alguna vez se encuentra algún problema, sólo tenemos que arreglarlo en un solo lugar. Esto es clave para escribir un buen código mantenible. Crearé un método privado que devuelve una cadena llamada Get Currency para su visualización, y aceptará un argumento de doble superior, y nombraré ese valor de argumento. Voy a usar el formato string dot aquí para hacer justamente eso. Toma el doble valor que estamos tratando de imprimir y formateado correctamente. Sé que buscamos brevemente un formato string dot en el video Trabajando con cuerdas, pero tiene alguna funcionalidad que no cubrimos. En realidad se puede pedir a la función de formato que se formatee de una manera específica dentro del método. Cree una variable de cadena denominada Valor formateado Igual formato de punto de cadena y luego use comillas dobles . Y esto va a parecer un poco extraño si recuerdas la función de formato string dot utiliza un lugar bajo sistema, por lo que vamos a usar open Carly zero Colon Capital C. Cerrar. Rizado. De lo que esto está haciendo es decir queremos el primer argumento, pero queríamos en el formato C mayúscula y el formato C mayúscula pasa a ser moneda, así que cuando nos devuelve el valor, debería estar debidamente formateado Ahora solo tenemos que poner una coma después de la cita de cierre y luego utilizar el valor que se suministró al método y luego devolvió el formato de valor del método. Por último, necesitamos pasar por el código existente y llamar a este método en todas partes que estamos poniendo un valor de moneda a la pantalla. El display Mito de la pantalla de transacciones recientes. Es el primero. Eliminar el signo de dólar y envolvió el valor de la cantidad de punto de la transacción en el método get currency for display. Tenemos que hacer lo mismo en el método de pantalla de retiro de pantalla. Eliminar el signo de dólar y envolver la variable de cantidad en la llamada de método y nuevamente en el método de pantalla de depósito de pantalla y finalmente, en el mito de pantalla de saldo de cuenta de pantalla. Este es subrayado. Cuenta activa sobre saldo. De acuerdo, creo que eso está en todas partes. Sólo voy a asegurarme de que estés bien. Ejecutemos la aplicación y echemos un vistazo a los resultados. La pantalla de saldo de cuenta se ve bien, pero necesitamos más datos. Voy a depositar $5.5 fans y luego retirar $10 luego retirar otros $1.50. Ahora bien, si volvemos a la pantalla de saldo de cuenta. Debe mostrarse correctamente. Lo hace antes de cerrar. Echemos un vistazo rápido a la pantalla de transacciones recientes. Está bien al error final está en la pantalla de inicio de sesión. En este punto, cuando un usuario innata credenciales inválidas, no llega a ver un mensaje sobre el aire que pueda demostrar realmente rápidamente lo que está pasando aquí. Y, como puedes ver cuando ingresas credenciales no válidas, su mensaje no es visible. La solución es bastante simple. En la pantalla, método de inicio de sesión en la parte superior eliminó la línea clara de puntos de la consola en caso de credenciales inválidas . Todavía tenemos que despejar la pantalla, pero lo haremos antes de que se muestren los mensajes de aire y vuelven a llamar al método display log in screen . Entonces justo encima del mensaje fallido de autenticación en su consola punto claro, y creo que eso es todo. Mejor revisa el método de cierre de sesión. Ya está ahí. De acuerdo, vamos a probar. Si entro credenciales no válidas como 123 y 9999 deberíamos ver el mensaje lleno de autenticación , y ahí está, genial. Eso cubre todas las correcciones de errores que conozco. Hasta este punto, hay dos carencias en la aplicación, pero esas serán cubiertas en el siguiente apartado. Cuando les doy algunas asignaciones por las que trabajar por su cuenta. En el siguiente video, hablaremos de lo que está involucrado en la Sección tres. 29. Introducción: en este video, te daré un adelanto de lo que puedes esperar en esta sección final. En este apartado, te daré un Siris de Osama para completar por tu cuenta. Ellos algo el curso está cubierto. Deberías poder completar las tareas bastante fáciles. Si encuentras que no puedes completar la tarea, intenta mirar hacia atrás el curso. Te indicaré en cada Osama donde aprendimos lo que necesitarás para completar el trabajo si aún tienes problemas para completar la tarea. Después de mirar las secciones indicadas, mira el siguiente video y te mostraré cómo resuelvo el problema para luego volver y volver a intentarlo . En este punto, la aplicación está casi completa de funciones, por lo que estos islamistas son solo para ayudarte a pensar críticamente sobre la aplicación y el proceso de desarrollo y el siguiente video. Miraremos nuestra primera asignación 30. Proyecto #1: Component de la cabeza: en este video, presentaré algunos requisitos básicos para el componente de cabecera. Aquí está la descripción del problema. Como usuario, me gustaría ver mi nombre completo en el saldo de la cuenta del menú principal, retiro de depósitos y pantallas de transacciones recientes en forma de mensaje de bienvenida. Y aquí están los requisitos técnicos. En primer lugar, la solución necesita ser reutilizable. En segundo lugar, el mensaje de bienvenida debe verse decente en la pantalla. En tercer lugar, el mensaje debe mostrarse en la parte superior de cada pantalla donde se sabe quién es el usuario. Básicamente, esto es excluir la pantalla de inicio de sesión y último, vas a tener que agregar un nombre, propiedad a la cuenta de usuario, objeto y poblar el nombre con algún valor. Si encuentras algún problema, el siguiente video para ver mi solución y luego regresa y trata de reelaborar la tuya propia. En el siguiente video, revisaré mi solución al componente de cabecera 31. El de proyecto #1: en este video, mostraré mi solución para crear un componente de encabezado. Empezaré con el cuarto requisito técnico y agregaré la propiedad nombre al objeto de cuenta de usuario . Tampoco voy a usar nombre. Usaré nombre completo. Siempre trate de ser lo más descriptivo posible con nombres de propiedad. Por lo que nunca hay que dudar para qué se están utilizando. Entonces le daré a cada una de las cuentas que creamos en el constructor de controladores A t M un valor para la propiedad de nombre completo. Simplemente usaré unos nombres aleatorios Karen Smith y Tom Granger y Eva Richards. De acuerdo, eso satisface eso. A continuación, me encargaré del primer requisito agregando un método privado sin retorno top con nombre display. Mensaje de bienvenida. Esto significa que sólo tenemos el código que imprime el mensaje de bienvenida en un solo lugar sobre Podríamos simplemente llamar a este método donde lo necesitemos. En el interior. Voy a utilizar la consola de punto de línea derecha para imprimir el mensaje y usted cadena de interpolación al formato. El mensaje dirá Welcome to U. S. Un banco y luego abrirá actualmente el subrayado. Active account dot Full main close Curly también, para satisfacer el segundo requisito, usaré un punto de consola vacía línea derecha para darle al componente de cabecera un poco de espaciado. Por último, asumiré el tercer requisito. Empezaré con una pantalla de transacción reciente y justo después de la consola punto claro. Simplemente llamaré a la pantalla Mensaje de bienvenida, método y trabajando a nuestro camino. Ah, voy a hacer la pantalla de retiro a continuación, también justo después de la línea de puntos cónsul, y repito lo mismo para la pantalla de depósitos y otra vez para la pantalla de saldo de cuenta y finalmente, para la principal método de menú. Ahora vamos a darle una prueba rápida. Usaré la misma cuenta siempre uso, y se ve lo suficientemente decente en la pantalla del menú principal y en la pantalla de saldo de cuenta. El biombo de depósito está bien. Tengo que ingresar un depósito para salir de esta pantalla. La pantalla de retiro también se ve divertida y también tiene que entrar retiro aquí para salir, y la pantalla de transacciones recientes también es divertida. En el siguiente video, le daré un Osama por un par de problemas de pantalla de depósito 32. Proyecto #2: Corrección de la pantalla de: en este video, expondré a problemas en la pantalla de depósitos y obtendré algunas pautas generales sobre qué hacer para solucionar los problemas. Aquí está el primer número. Yo quiero demo el problema para que puedas ver un de primera mano si nos bloqueamos en la cuenta 1234 y vamos a la pantalla de saldo de cuenta, puedes ver que tiene un saldo corriente de $241.95. Ahora bien, si vamos a la pantalla de depósito y depositamos negativo 10 se aceptará. Ahora bien, si volvemos a la pantalla de saldo de la cuenta, el saldo de la cuenta ha tenido 10 dólares deducidos de ella. Este no es un problema que probablemente verías en un 80 M real porque no tiene una clave menos . Pero sí tenemos uno, así que tenemos que contabilizarlo aquí. Y aquí está la declaración del problema. Como usuario, cuando intenté depositar $0.0 o menos, el sistema debería rechazar la transacción, y aquí están los requisitos para la corrección. En primer lugar, pueden aceptar depósitos de menos de un centavo. Es posible que tengas que volver a visitar el video if else para conseguir un refresco. Segundo, cuando esto sucede, notifique específicamente al usuario lo que hizo mal. Por último, el usuario aún debe estar en la pantalla de depósito después de la entrada inválida, por lo que sigue junto con los mensajes de error existentes para proporcionar una experiencia de usuario consistente. Aquí está la segunda declaración de problemas. Como usuario, debería poder volver a la pantalla del menú principal desde la pantalla de depósito sin hacer un depósito. Los requisitos del inquilino son actualmente uno de los usuarios entra a la pantalla ahí, provocó el monto del depósito interno y presiona cambio interno ese mensaje para incluir también que pueden inter X para volver al menú principal. Y, por supuesto, tendrás que probar ese valor y luego devolverlos a la pantalla del menú principal si lo ingresan . Segundo, esto necesita ser reutilizable. Como saben, esa pantalla de retiro tiene el mismo problema es la pantalla de depósito por lo que bien podemos tener una única solución para ambos problemas? Es posible que tengas que pensar en cómo puedes resolver este problema de forma sencilla y elegante, pero es una buena prueba de tus habilidades de razonamiento. El requisito reutilizable es definitivamente un rancho de monos, pero ofrece una oportunidad para que vuelvas a mejorar esas habilidades. Si no puedes encontrar una buena solución a los problemas, mira el siguiente video y luego vuelve a visitar los problemas. En el siguiente video, revisaré mi solución a este asama. 33. Repaso de proyectos #2: en este video, proporcionaré mi solución para arreglar la asignación de pantalla de depósito. Empezaremos en el método de pantalla de depósito de pantalla de visualización. Voy a abordar el primer requisito del primer problema deteniendo a un usuario de depositar cantidades cero o negativas dentro de la declaración if dot double tri par. Voy a probar si la variable de cantidad es menor o igual a cero, y voy a seguir adelante y crear el otro y luego tratar con eso primero. El otro terminará ante la segunda casa en este comunicado. A continuación, voy a satisfacer el segundo requisito del primer problema dentro del Si acabo de crear, usaré cónsul punto derecho línea para imprimir el aire. Los depósitos de mensajes deben ser mayores a $0.0. Presiona cualquier tecla para continuar, luego un punto conso Rechy a la ejecución de Paul. Y por último, para satisfacer el tercer requisito del primer problema, voy a añadir una llamada para mostrar pantalla de depósito. Ejecutemos la aplicación y probemos esta parte de la funcionalidad ingresando las mismas credenciales de siempre. Si pasamos a la pantalla de depósito, trataré de depositar negativos $10. Genial. Se rechazó. Ahora necesitamos probar para el personaje de escape para satisfacer el segundo problema. El primero que haré es tratar de satisfacer el segundo requisito creando un método privado que devuelva un valor booleano llamado es secuencia de escape de entrada. Y tomará un solo argumento de cadena llamado entrada. En este método, crearé una variable booleana llamada es Match. Ahora necesito probar el valor que se pasó. Entonces voy a crear una declaración if y voy a lanzar el argumento de entrada a minúsculas. Por lo que no tengo que preocuparme por probar los valores de mayúsculas y minúsculas. Y si ese argumento de entrada en minúsculas es igual a X, estableceré la variable is match. Cierto. Entonces después de eso, si me limitara a devolver el es partido. Maribel, vuelta en el método de pantalla de depósito de exhibición. Necesito implementar esto por lo que crearé otra declaración if por encima de la variable de cantidad doble . Y la declaración s va a decir si es secuencia de escape de entrada y voy a pasar ahí el monto del depósito . Si esa declaración es verdadera, necesitamos llamar al método de pantalla del menú principal de pantalla. Si no es cierto en lo demás simplemente envolveré el resto del código en este método y están cerrando Curly junto para satisfacer el primer requisito del segundo problema. Solo necesito alterar el producto que se muestra al usuario cuando ingresa a la pantalla. Simplemente agregaría o presionaría X y entraba salida. De acuerdo, Estamos listos para probar si entro las mismas credenciales y luego voy a la pantalla de depósito porque cambié la obra. Ah, trabajamos antes. Sólo voy a asegurarme de que la pantalla aún no procese postes negativos. Está bien, eso funciona bien. Ahora probaré huevos. Bingo. Eso también funciona. En el siguiente video, daré los detalles de la tercera asignación, que es casi idéntica a lo que acabamos de hacer aquí para la pantalla de retiro. 34. Proyecto #3- Reparar la pantalla de la eliminación de: en este video, voy a dar una visión rápida de los requisitos para fijar la asignación de pantalla de retiro . Aquí está la primera declaración de problema como usuario, cuando troteé retiro $0.0 o menos, el sistema debe rechazar la transacción y los requisitos son primero. Deberían rechazarse retiros de menos de un centavo. En segundo lugar, cuando se intente esto, se debe mostrar un mensaje de error que indica que es similar al del mismo escenario en la pantalla de depósito. En tercer lugar, el usuario debe permanecer en la pantalla de retiro en lugar de ser redirigido de vuelta al menú principal . En cuarto lugar, la solución necesita ser reutilizable y último factor re que una solución de pantalla de depósito para reutilizar este aquí es la segunda declaración del problema. Como usuario, debería poder volver a la pantalla del menú principal desde la pantalla de retiro sin hacer un retiro. Y aquí otros requisitos alteran primero el mensaje que se muestra en la pantalla de retiro cuando el usuario entra por primera vez para indicar también que pueden presionar X para salir de la pantalla . En segundo lugar, utilice la solución existente que se desarrolló para la pantalla de depósito. En el siguiente video, te daré mi solución a este problema 35. Repaso de proyectos #3: en este video, revisaré mi solución a la asignación para arreglar la pantalla de retiro. Empezaré agregando un nuevo método de ganancia que devuelve a un matón y llamado ¿Es válido el monto de la transacción ? Y ese método tomará un solo argumento doble llamado Value. Tenemos que probar el perímetro del valor para ver si es menor o igual a cero. Si lo es, nos devolvieron falsos. Después de la declaración s, puede devolver true de forma segura. Hagamos una pausa un minuto y echemos un vistazo a esto porque me doy cuenta de que puede parecer un poco extraño. Esto es realmente el equivalente de una sentencia if else porque estamos devolviendo el valor en la sentencia if, La sentencia return True no será golpeada si el valor es cero o menos. Ojalá puedas entender lo que está pasando aquí. Pero si no, siéntase libre de reescribirla para que sea una declaración FL completa o similar al método es de secuencia de escape de entrada justo encima de esto. Siguiente en la pantalla de retiro método traído por debajo del si doble punto trop caballo bloque de apertura, voy a añadir otra declaración if que llamará al es método válido de la cantidad de transacción y pasando el valor de la cantidad. Entonces si este valor es válido, queremos seguir adelante y ejecutar el código existente. Por lo que necesitamos bloquear ese abrigo con un corsé rizado después del siguiente. Si las declaraciones else concluyen, también necesitamos agregar una declaración else a la nueva declaración if. Si el valor no es válido, queremos mostrar en mensaje aéreo diciendo que el monto del retiro debe ser mayor a $0 0 centavos. Presione cualquier tecla para continuar. Entonces necesitamos de Paul's con conso dot Reekie y finalmente recargar el retiro. Grita llamando al método de pantalla de retiro de pantalla. También necesitamos el implemento la misma funcionalidad y el método de depósitos de pantalla verde. Voy a quitar la cantidad si es menor o igual a cero declaración y la declaración else correspondiente y hacer que todo vuelva a la normalidad, igual que en la pantalla de retiro. queremos ejecutar este código si la variable de importe es válida, por lo que crearé otra sentencia if en el mismo lugar para probar el valor de la cantidad usando el importe de la transacción. Método válido. Esta declaración if terminará antes de los próximos Els y vamos a añadir nuestra propia declaración l. Si el valor de la cantidad no es válido, necesitamos mostrar un mensaje diciendo que el monto del depósito debe ser mayor a $0 0 arena presione cualquier tecla para continuar. Entonces voy a hacer una pausa con la consola dot Reekie y finalmente llamó al mensaje de pantalla de depósito . Esto se encarga de los cambios requeridos. Para la primera declaración de problema, comenzaré en la segunda declaración de problema alterando el mensaje existente en la pantalla de retiro para incluir también o presionar X e interior para salir. A continuación, añadiré una nueva declaración if por encima de la declaración de doble importe, y llamaré al método de secuencia de escape if is entry y pasando la variable de cantidad de retiro . Si esta es la secuencia de escape, solo necesitamos mostrar la pantalla del menú principal. Y si no es cierto, queremos ejecutar todo lo demás en el método. Por lo que la llave rizada de cierre va al final del método. Ahora concursamos. Voy a inter credenciales e ir a la pantalla de depósito para asegurarme de que no rompí nada . Intentaré negativo 10 en que se rechace. Bien. Ahora invierto X y me aseguro de que nos redirija al menú principal que también funciona. A continuación, probaremos pantalla de retiro. Intentaré negativo 10. Bien. Ahora solo quiero asegurarme de que en realidad se acepte un buen monto de retiro por lo que entraría 10. De acuerdo, eso también funciona. De acuerdo, ahora vuelve a la pantalla de retiro, y vamos a asegurarnos de que la X se comporte se supone que debe, como lo hace muy bien, y el siguiente video será o bien la revisión del curso o más asignaciones. Al ver carencias en el curso o mejoras a realizar, sumaré más asignaciones si no se ha agregado nada. El video final, la revisión del curso, es el siguiente. 36. Revisión de cursos: en este video, cerraré en el curso y ofreceré algunos pensamientos finales, aprecio y consejos. En primer lugar, quiero agradecerles por quedarse con el curso hasta el final. También quiero recordarte que tu opinión importa, y si aún no lo has hecho, te animo a dejar una calificación y retroalimentación si esa retroalimentación es buena o mala. Por supuesto, cuanta más información des, mejor. Me ayudará a mejorar el curso y me ayudará a mejorar como instructor. Si te preguntas qué debes hacer a continuación, tengo la única pregunta que deberías estar haciéndote. ¿ Crees que debes quedarte con C agudo o encontrar otro idioma para aprender? Si te vas a quedar con C agudo, quiero recordarte qué opciones tienes, pero debes volver a ver el video nítido Y C. Ahí. Ver marcos afilados y herramientas disponibles para que usted se dirija a Windows en forma de WP f y usted WP Para la Web, se puede elegir entre un s p dot net formularios Web, y le pregunté a Donna NBC para Mobile. Deberías echar un vistazo a Samrin y para el desarrollo de juegos Unity tres D. Sin embargo, si crees que el C Sharp simplemente no es para ti, por alguna razón, te animaría a mirar uno de los tres idiomas Java JavaScript o C plus de los tres Java es probablemente la mejor opción. Está muy cerca de ver afilado, y puedes aprovechar casi todo lo que has aprendido en este curso de inmediato. JavaScript es muy flexible y el lenguaje de programación de la Web, y realmente está explotando con esa explosión, sin embargo, viene la fragmentación. El estado de JavaScript sólo se puede describir en este momento es un desastre, pero sí ofrece un crecimiento masivo. Simplemente no van a haber menos sitios web mañana o el próximo año de los que hay hoy. Y por último C plus C plus plus, en mi opinión, es un lenguaje mucho más difícil de aprender ese trabajo afilado C, pero fueron script Java y tendrás muchas más preocupaciones con C plus. Pero las posibilidades con C plus son casi ilimitadas. Se puede hacer casi cualquier cosa otra vez. Yo quiero agradecerles por tomar el curso. Si encuentras algún tema o necesitas ayuda, por favor comunícate conmigo en el panel de discusión para este curso. Yo lo revisaré regularmente. Te deseo todo lo mejor en tus empeños de programación. Adiós.