C # 10 y . NET 6 para principiantes | Trevoir Williams | Skillshare

Velocidad de reproducción


1.0x


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

C # 10 y . NET 6 para principiantes

teacher avatar Trevoir Williams, Jamaican Software Engineer

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

      1:01

    • 2.

      Instale Visual Studio 2022

      7:56

    • 3.

      Crea tu primer proyecto de consola C

      8:14

    • 4.

      Tour de Visual Studio 2022

      15:29

    • 5.

      Comprende la diferencia entre . Versiones netas 6 y anteriores

      9:27

    • 6.

      Desarrollo con código de estudio

      9:21

    • 7.

      Examen de secciones

      1:43

    • 8.

      Cómo entender la sintaxis básica

      18:11

    • 9.

      Programas de entrada y salida

      16:27

    • 10.

      Tipos de datos y conversión

      23:30

    • 11.

      Técnicas de depuración

      10:39

    • 12.

      Operadores de Arithmetic y asignaciones

      12:46

    • 13.

      Declaraciones condicionales

      24:28

    • 14.

      Declaraciones de repetición

      19:06

    • 15.

      Métodos - vacíos

      13:57

    • 16.

      Métodos - retorno de valor

      14:12

    • 17.

      Funciones de manipulación de cuerdas

      22:40

    • 18.

      Funciones de manipulación de DateTime

      19:09

    • 19.

      Manejo de excepciones

      14:47

    • 20.

      Arrayas

      21:04

    • 21.

      Listas

      20:27

    • 22.

      Introducción a clases y objetos

      30:42

    • 23.

      Sobrecarga de métodos

      8:03

    • 24.

      Clases estáticas y miembros de clases estáticas

      11:36

    • 25.

      Herencia con clases e interfaces

      26:35

    • 26.

      Constructores

      12:46

    • 27.

      Crear cuenta de GitHub

      1:17

    • 28.

      Agregar solución al control de fuentes

      10:58

  • --
  • 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.

371

Estudiantes

1

Proyectos

Acerca de esta clase

En este curso aprenderás programación en C# para aplicaciones de escritorio. Estas lecciones no asumen conocimientos previos de programación o lenguaje C# y te harán funcionar en muy poco tiempo.

Este curso te proporcionará un empleo . Desarrollador NET en cualquier organización.

Este viaje te hará experto

  • Interfaz de estudio visual y atajos

  • Desarrollo de aplicaciones de consola con C# 10 NET 6)

    • Comprender la sintaxis de C

    • Comprender tipos de datos y variables

    • Comprender estructuras de control de secuencias, decisiones y repetición

    • Cómo entender la manipulación

    • Cómo entender la manipulación de fechas y horas

    • Comprender programación, clases y objetos orientados a objetos

    • Cómo entender el estudio visual

    • Comprende técnicas

    • Cómo crear aplicaciones

  • Cómo aplicar una programación orientada a objetos

  • Cómo agregar un proyecto de estudio visual

Por qué aprender lenguaje C

C# es el lenguaje de programación más versátil Marco neto Núcleo NET. No solo puedes crear aplicaciones con clientes de Windows, sino que también puedes usar C# para crear aplicaciones web y móviles.

C# puede ser utilizado para construir:

  1. Aplicaciones con clientes de Windows Forms, WPF y UWP.

  2. Aplicaciones web con ASP.NET y ASP.NET Core.

  3. Aplicaciones móviles nativas para iOS y Android con Xamarin.

  4. Bibliotecas, componentes y aplicaciones de consola

  5. Aplicaciones en nube y Azure

  6. Aplicaciones de cadena

  7. No solo es compatible con el lenguaje C# y mantenido por Microsoft, sino que también tiene un fuerte apoyo comunitario. Más de 5 millones de desarrolladores usan lenguaje C#. El compilador NET Core y C# es de código abierto y la adopción crece en comunidad de código abierto.

Contenido y descripción

Este curso es muy básico y lleno de consejos de desarrollo. Este curso enorme ofrece contenido premium y se dividió de manera inteligente para destacar un conjunto de actividades relacionadas en función de cada módulo. También veremos cómo solucionar problemas y depurar errores a medida que avanzamos; implementar mejores prácticas; escribir una lógica eficiente y comprender por qué los desarrolladores hacen las cosas de la manera que hacen. Tu conocimiento crecerá, paso a paso, a lo largo del curso y te verás desafiado para ser lo mejor que puedas ser.

Conoce a tu profesor(a)

Teacher Profile Image

Trevoir Williams

Jamaican Software Engineer

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 curso, C-sharp y dotnet seis para principiantes absolutos. Soy tu instructor para Vaughan Williams. Llevo diez años enseñando programación . En este curso, aprenderás a usar nuestra programación para aplicaciones de escritorio. Estas lecciones no suponen ningún conocimiento previo de programación ni del lenguaje C-sharp, y te tendremos en funcionamiento en muy poco tiempo. Aprenderemos sintaxis C-sharp, variables, bucles, y esto es en declaraciones, colecciones como este remitente elevan bucles y sentencias de decisiones y programación orientada a objetos. Al final de este curso, también aprenderás a agregar tu solución a un grupo fuente de Sistema de Gestión como GitHub. Los desarrolladores con conocimiento del framework dotnet y el lenguaje C-sharp están en muy alta demanda en este campo. Este curso está lleno de consejos de desarrollo y es muy amigable para principiantes y te equipará para ser desarrollador de dotnet sin empleo en cualquier organización. Sin más preámbulos. Estoy feliz de tenerte en este viaje y no puedo esperar a que empecemos a divertirnos tanto. 2. Instala Visual Studio 2022 edición de comunidad: Hola chicos. En esta lección estaremos instalando Visual Studio 2022, que se envía con dotnet six, que es el dotnet más rápido hasta la fecha. Entonces para empezar, solo tenemos que ir a Visual Studio.Microsoft.com slash descargas. Y luego vamos a seguir adelante y golpear la descarga gratuita en la edición comunitaria, que luego nos dará un instalador. Una vez que ejecutes ese instalador, podremos seleccionar las cargas de trabajo que deseemos. No hay cargas de trabajo realmente referidas a las bibliotecas ni a bibliotecas de soporte para el tipo de aplicación que te interesa crear. En este caso, definitivamente queremos conseguir esa carga de trabajo de desarrollo web ESP, dotnet y desarrollo web. Pero entonces si te interesan otras tecnologías, puedes seguir adelante y seleccionarlas. Para que puedas ver tengo varias cargas de trabajo seleccionadas con un desarrollo 0, NodeJS y desarrollo de escritorio. Se puede seguir adelante y dividir los también. Creo que van a ser de utilidad con otros proyectos que podrías terminar construyendo todo en general, una vez que hayas hecho eso, puedes seguir adelante y golpear Instalar, que se haría por la parte inferior derecha- esquina de la mano. Por supuesto, cuantas más cargas de trabajo selecciones es mayor será el tamaño de la descarga. Entonces una vez que hayas completado eso, entonces puedes continuar. Nadie que la descarga está terminada, puede que consigas ciertas opciones que no voy a conseguir porque ya la tengo instalada. Entonces te voy a caminar a través de lo que esperamos? Es posible que consigas una opción en la que puedas elegir tu tema. Como se puede ver, estoy usando el tema oscuro, pero entonces sí tienes la opción de un tema claro, un tema azul. Y lo que pasa es que Visual Studio 22 tiene muchos más temas que sus predecesores. Así que incluso si no quieres iluminar los temas iniciales, puedes obtener otros temas si los necesitas. Además, es posible que se te pida que inicies sesión si ya tienes 2019 instalado en tu máquina y acabas de instalar en 2022, ya iniciaste sesión en 2019, entonces probablemente no te pida que vuelvas a iniciar sesión. No obstante, si esta es su primera instalación de Visual Studio, posible que se le pida que inicie sesión o cree una cuenta en vivo, punto en el que querría simplemente usar su Microsoft emitido en vivo en absoluto. Mira hotmail.com en conos, o simplemente puedes seguir adelante y crear uno. Y si mi memoria sirve respeto, puedes usar otra dirección de correo que no sea de Microsoft segrega una universidad de nivel. Si sigo adelante y creo un nuevo proyecto y hago una nueva aplicación de consola, C Sharp console up. Entonces esto sólo va a ser VS 2222 demo. Muy bien, adelante, pega a continuación. Cc es lo mismo, pero aquí puedo elegir qué framework y ahora puedo elegir el último dotnet six.net cinco fue lanzado el año pasado y es de acuerdo con 1.93.1, siéntate como soporte a largo plazo. Por lo que sigue siendo bastante capaz y cada uno es en realidad compatible al revés. Entonces cinco, la mayor parte de lo que estás haciendo, tres más, si no todo lo que haces en 3.1 sigue siendo compatible con cinco. La mayoría, si no todo lo que hubieras hecho con estos dos puede ser hacia adelante, reenviarlo a dotnet 6.1. Es una especie de apoyos. Yo sugeriría si tiene algún UPS robando 2.1 para empezar a buscar actualizarlos o actualizarlos. O al menos si solo estás aprendiendo.net Core, no empieces con 2.1. Cuando seguimos adelante y golpeamos Create. Otra cosa que tomo nota , pausa el video. En realidad no fue tan rápido, pero me detuve el video. Una cosa que tomé nota es el hecho de que es mucha fosa, eso es probablemente porque no es una aplicación de 64 bits, por lo que está haciendo un mejor uso de tus recursos de máquinas de 64 bits que anteriores versiones tendrían. No, vas a ver tiempos de búsqueda FASTA, tiempos carga de proyectos más rápidos. Tienes soluciones con 109 proyectos. No debería tardar tanto en cargarlos. Entonces otra cosa que fui a señalar es que esta es una app de consola. Y si tienes alguna experiencia escribiendo normalmente obligación C-sharp y no sabrías que hay una plantilla estándar donde tienes un montón de usar declaraciones en la parte superior. Y luego tienes int clase principal Java, y luego tienes int main, y luego tienes el código ahí. Pero aquí todo lo que estoy viendo es el código. Esto es dotnet 66 en realidad se deshizo de toda esa plantilla. Así que déjame simplemente agregar el proyecto de aplicación de consola dotnet F5 rápidamente. Permítanme simplemente llamar a esta una demo. Estoy a las cinco por lo que sabemos Next. Y entonces éste se hace a las cinco. Entonces a eso es lo que probablemente estamos acostumbrados cuando nos fijamos en un proyecto dotnet cinco se hacen addFive proyecto de consola o archivo de código. Tienes tu clase, tendrás tu principal vacío estático, y luego tienes tu código. No obstante, en dotnet seis, se deshicieron de los raperos, nuestra propia aceituna que el apenas empieza a escribir código. Esto no es, esto no es un tutorial de C-sharp. Sólo estoy señalando los dos matices. Mi tutorial de C-sharp, definitivamente pasaré por todo eso y las diferencias entre la dotnet, regular dotnet C-sharp y lo que dotnet six trae a la mesa. Pero es realmente genial Por lo que yo lo veo. Ahora otra característica interesante para mí es que es mayor inteligencia cuando se trata de insinuación de código, insinuando lo que podría estar obteniendo su mientras está escribiendo su código. Nuevamente, ven esto como una enorme productividad cuando adoptan la característica en el código de tele. Y verás ese pequeño ícono de aquí abajo que te permite tipo de alternar algunas de las opciones. Entonces si escribo consola, verás que es una especie de auto completando la línea de escritura de puntos. No me está esperando entrar en la lista y luego seleccionarla. Puedo dispersar pestaña y luego tina, siempre y cuando se acuerden. Personajes a la derecha del cursor, puedo presionar pestaña y luego solo los llenará. Yo estoy aquí. Déjame probar otra cosa. Si hago algo como varname, var num one es igual a y luego veo que está sugiriendo que probablemente quiero inicializarlo a 0. Déjame ver si realmente es que lo inteligente, vale, está sugiriendo num2. ¿ Y si quisiera var name? ¿ Qué sugeriría var nombre? Y luego un espacio y luego bien, Así que supongo que lo rompí. Pero se puede ver a lo que está recibiendo tal vez. Muy bien. Entonces supongo que el nombre var es vago. Como, ya sabes, necesitas teclear para que sepa exactamente qué camina diez de variable que va a ser antes de dar el valor. Entonces si dijera el nombre de cadena uno, veamos qué sugeriría. Stringy y uno. Y también solo mostrando, bien, así que esa es una característica supongo que las horas extras aumentará en su oferta porque esto realmente se basa en compleciones en frío, basadas en otras muestras de código de varios repositorios por todo el lugar. Así que supongo que nombres de variables aleatorios que deseaba raramente utilizados, razón por la cual probablemente está teniendo un momento tan difícil entender a qué me estoy metiendo. Pero entonces no puede ver con el num uno, num dos, si lo averiguó. Acabo de presionar Enter. Está sugiriendo consola dot write line, tab. Y luego va a sugerir en la pestaña de ahí mismo, acabo de imprimir num uno sin escribir una línea de código y miro esto, presiono stop una vez y estoy imprimiendo num2. Entonces creo que lo usas, parecerá más fácil, hará mejores sugerencias. Es claramente contextual porque sabe que num1 y num2 están en los documentos están en el programa, sabe que puede sugerirlo posteriormente. No lo hagas por mis operaciones. 3. Crea tu primer proyecto de consola C#: Bienvenidos de vuelta chicos. En esta lección, vamos a estar haciendo un recorrido rápido por Visual Studio 2022 mientras estamos configurando nuestro primer proyecto, Visual Studio 2022. Una vez que se lanza, obtendrás esta pequeña ventana. Estoy corriendo modo oscuro, razón por la cual mi luce tan genial, pero podrías estar corriendo con luz o azul, que es algo que quizá hayas podido seleccionar mientras hacías la instalación y los pasos iniciales. No obstante, cualquiera que sea el tema que estés ejecutando, el layout se va a parecer muy similar a esto. A la izquierda, tenemos proyectos recientes. Ves aquí que he derrumbado mis proyectos recientes, lo que tengo bastantes proyectos. Simplemente no quiero que me golpeen con nada. Te haré sentir como si la tuya no estuviera funcionando tan bien como la mía. Pero una vez que empieces tus actividades de desarrollo, visual Studio las archivará a la izquierda para permitirte lanzarlas rápidamente si lo necesitas. No obstante, ambos tenemos la oportunidad de empezar para que podamos rellenar un repositorio desde un repositorio en línea como GitHub o como tu DevOps. Podemos abrir un proyecto o solución existente. Podemos abrir una carpeta local, y luego podemos seguir adelante y crear un nuevo proyecto. También podemos continuar sin código. Voy a seguir adelante y crear un nuevo proyecto. Tiene diferentes plantillas y estas plantillas son relativas a las cargas de trabajo que habría seleccionado durante la instalación. A la izquierda, ha utilizado recientemente plantillas. Si agregas guanina y ya experimentaste, entonces tendrías este tipo de plantillas listadas a tu izquierda, cualquiera con la que experimentaran. De no ser así, puede ser un problema decimal vacío. El derecho de arriba es donde tienes todas las plantillas potenciales que posiblemente podrías tener en función de tus cargas de trabajo. Una vez más, también puedes buscar y filtrar. Por lo que ves tengo mucho aquí. No sé donde algunos de ellos siguen en la lista. Siempre puedo escribir la que me interesa octubre, y filtrará esta lista en consecuencia. Al seleccionar su plantilla, tiene una serie de opciones. Tienes el idioma en el que quieres que esté la plantilla. Se trata de un pobre C-sharp, así que nos vamos a centrar en C-sharp B como plantillas. Entonces tenemos todas las plataformas o Android o como ceros. Puedes filtrar nuestra según eso. También puedes filtrar según los tipos de proyecto. Tan extrañamente, en la programación de consolas en este módulo en particular, pude ver fácilmente un C-Sharp en consola, y luego solo me produciría las plantillas que son propicias para estas dos opciones. De lo contrario, con estos filtros, por supuesto puedo desplazarse por. Si no encuentras la plantilla que estás buscando, veamos aquí. Llegas hasta aquí y estás tratando de encontrar la consola C Sharp y no está ahí. Eso significa que probablemente no instalaste la carga de trabajo. siempre puedas ir al final de la lista y puedes instalar más herramientas y características que en realidad simplemente relanzarían el instalador que te permitiera seleccionar tus cargas de trabajo. Selecciona el que falta, que sería para el desarrollo de escritorios. Hola Visual Studio para modificarse a sí mismo. Y entonces la próxima vez que vengas aquí, deberías estar bien. Empecemos con una aplicación de consola C Sharp. Entonces nota que tienes la consola C Sharp arriba, también tienes consola VB. Absolutamente muy cuidadoso al anotar el lenguaje que se está utilizando no estaban usando Vizio OBC. Si querrá estar seguro de elegir C sharp. Entonces cuando hice la consola, habrías visto dos opciones diferentes, C14 dotnet framework versus el dotnet Core. Por lo que en realidad nos vamos a centrar en dotnet Core porque.net Framework es tecnología más antigua. Fue entonces cuando era Windows solo desde dotnet Core, no en ella se ha convertido en código abierto. Por lo que queríamos enfocarnos en los avances más recientes con el desarrollo NOT IN IT y hemos utilizado dotnet Core. Escogeremos la app de consola que puede ejecutarse en dotnet Core que puede correr a través de todas las plataformas. Recuerda, no mencioné que se trata una vieja plataforma cruzada, una hendidura que acaba de hacer doble clic en ella. Y luego nos enfrentaremos con el menú, lo siento, la opción de asistente para poner en nuestro nombre de proyecto, elegir una ubicación y seleccionar una solución. Voy a elegir por el nombre del proyecto. Muy sencillo. Hola Mundo. Ese suele ser el primer programa que alguien escribe en cualquier lenguaje de programación. Helloworld. Observe que al cambiar el nombre del proyecto, se cambia automáticamente el nombre de la solución, pero no necesariamente quiero que la solución tenga el mismo nombre que un proyecto. Entonces voy a elegir éste. Voy a nombrar esta programación de consola. El relevancia de esto es que la solución a un proyecto, lo siento, una solución a un problema. Cuando estás desarrollando una aplicación, estás desarrollando una solución a un problema. Solución. La solución puede tener un nombre, pero tiene diferentes proyectos, que es algo que vamos a hacer. Entonces vamos a tener una solución que tiene muchos proyectos. Entonces es por eso que les estoy nombrando de manera diferente aunque por defecto hubiera intentado darles el mismo nombre. Te estoy mostrando que no necesariamente tienes que hacerlo porque hay momentos que tienes una solución y luego tienes diferentes proyectos con diferentes nombres en la misma solución. Nombre del proyecto. Helloworld. Si quieres cambiar tu ubicación, puedes hacerlo, pero voy a dejar mi ubicación predeterminada. Y luego el nombre de la solución es la programación de la consola. Entonces voy a golpear Next. Es opcional complacer una solución en el proyecto en el mismo directorio. Dejaré eso hasta que peguemos a Next. Entonces tenemos que elegir la versión framework que nos interesa. Por lo que tenemos dotnet Core de dos puntos uno, que es muy claro que te está diciendo que es soporte automático. Entonces mi sugerencia es que no empieces ahí. Si ya estás haciendo algún desarrollo y tienes una obligación de sacar 2.1 de cuartos de galón. Por lo que sólo di tratar de actualizarlo lo antes posible. Pero eso es auto support.net Core de tres puntos uno que estará en apoyo hasta que creo que diciembre 2020 a este dotnet cinco fue como un intermediario entre 3.16 y se va a salir de apoyo en un tazón me fuera el mismo año. Pero dotnet seis casas de apoyo a largo plazo y eso estará en uso hasta el 2024 o al respecto. Estará en uso por unos años. Te sugeriría que acabas de empezar con Dutton a las seis ya que eso tiene el pedacito de longevidad más largo de todas estas versiones. Dicho esto, sin embargo, con solo unos cuantos ajustes entre cada versión fuera de los frameworks dotnet, cada versión de C-sharp ha mejorado incrementalmente. Y la mayor parte de lo que puedes hacer en 3.1 también es posible en dotnet six. Pero entonces dotnet busca tiene también un refinado ciertos procesos y los diseños de código que no son visibles en versiones anteriores. Entonces vamos a hacer una comparación rápida solo para asegurarnos de que puedas apreciar la diferencia bajo matices entre las versiones. Fui a empezar con dotnet seis. Entonces podemos seguir adelante y golpear Create. Ese es el resultado final de Oscar editando nuestros archivos de proyecto. Un archivo realmente en el Explorador de soluciones, y un archivo llamado program.cs con una línea de código o comentario en una línea de código. Voy a hacer una pausa desde, Desde este punto acabamos de mirar todo lo que creamos un proyecto, es alguien a quien vamos a hacer mucho más adelante, yendo hacia adelante. Así que no te preocupes si no completaste todos los pasos a la memoria. Eso fue mucha información, pero lo estaríamos haciendo otra vez por lo normal, fuimos a hacer una pausa. Y cuando volvamos vamos a hacer un recorrido por Visual Studio, este IDE, de qué es capaz, y cómo nos ayudará con nuestras actividades de desarrollo. 4. Visual Studio 2022 Tour de edición de comunidad: Muy bien, En esta lección estamos echando un vistazo a Visual Studio 2020 a la interfaz de usuario, cómo está todo conectado, cómo funciona, por lo que lo usamos en general. En primer lugar, notarás que mi Explorador de soluciones está a la izquierda. El tuyo por defecto es probablemente a la derecha. En realidad puedes tomar estos lo que debo decir, barras de herramientas y moverlas por todas partes. Si tienes una visión diferente para todo Visual Studio se presenta para ti. Personalmente, me gustó es el Explorador de soluciones a la izquierda. Así que en realidad puedo simplemente arrastrarlo y docket. Te darás cuenta de que estas son las plazas de aquí arriba. Cuando lo dejes caer en cuadrado, te mostrará dónde aparecerá. En caso de que sueltes tu dispositivo señalador. Si lo dejas caer en el centro, entonces se convierte en otra tina. No necesariamente quiero estar escribiendo código y lo suficiente como para pestañear aquí para cambiar un archivo y luego volver. No me gusta eso, así que me gusta tenerlo a costado y en mi caso al lado izquierdo. Y entonces no lo quiero tan ancho tampoco puedo hacerlo siempre más pequeño o más grande en consecuencia. Por supuesto, afecta tanto bienes inmuebles que tienes para tu sección de editor de código. Se puede experimentar con eso. También verás otras barras de herramientas en mi pantalla que quizás no necesariamente tengas. Cualquier barra de herramientas que te interese. Siempre puedes ir a Ver y puedes ver que es si accidentalmente cierras tu explorador de soluciones, entonces siempre puedes ir a ver y verás tu Explorador de soluciones, haces clic en él, vuelve a aparecer. Puedes pincharlo en maní u ocultarlo. Entonces si quería oculto, pero entonces cuando pongo el cursor o hago clic una vez aparece y luego lo uso y luego sigo haciendo lo que quería hacer. Esa es otra forma de mantenerlo en la pantalla, por así decirlo. Pero tener más bienes raíces para escribir tu código. Voy a tenerlo atracado permanentemente por una pantalla para principiantes que la puedo usar, pero puede que no necesariamente tengas eso, por eso te estoy mostrando cómo puedes alterar el escondite también. Sólo voy a enfocarme en las cosas que son absolutamente necesarias para que pasemos por la programación de consolas, al menos por ahora a medida que avanzamos, veremos más y más cosas. Visual Studio tiene diferentes temas como yo hubiera mencionado. Ya verás aquí estoy usando el tema oscuro. Siempre puedes ir a Herramientas, tema y elegir el tema que más te guste o puedes conseguir más temas. Y cuando llegas a cierto nivel, incluso puedes diseñar tus propios temas. Entonces, si empezaste con un tema ligero, entonces tu Visual Studio probablemente se verá más así. Eso no me gusta. Eso es duro en mis ojos. Si eliges el azul, entonces creo que solo cambia los artículos minuciosos, ¿verdad? Entonces este es el clásico look de Visual Studio de Visual Studio 20052008. ¿ Es un poco se ve así o más como el 2012 en realidad. Y entonces también puedes, como dije, puedes elegir otros. Así que tengo uno del mercado llamado Nordic que tipo de tiene este tono grisáceo, azulado. Sólo te estoy mostrando opciones. Una vez más, siempre puedes obtener más temas si usas sistema sentado, mi sistema está configurado en tema oscuro en mis ventanas. Entonces es solo heredar eso de mi máquina Windows. Una vez que te sientas cómodo con looks de Visual Studio todo el año, entonces puedes proceder. En términos de codificación de colores. Este es nuestro editor, y en realidad es sólo un editor de texto. Si alguna vez has hecho algún código antes, entonces es un editor de texto si nunca has escrito código antes y este es tu primer curso de codificación, eso no es problema. Eso no es un problema. Esto es sólo un editor de texto. Piensa en ello como Bloc de notas. Entonces la única diferencia, sin embargo, es que vamos a estar escribiendo sintaxis específica para lograr cosas específicas. Entonces la codificación de colores son, notarás que cierto mismo código tiene diferentes colores y realmente significan su papel en toda la experiencia escribiendo código. En el tema oscuro, al menos notarás que la consola tiene ese tipo de aspecto verde azulado. Soy decolorciego, así que perdóname. Mi ropa está apagada. Pero esa consola tiene ese T-loop. Entonces Consola es lo que llamaremos una clase que siempre va a codificar color cualquier cosa que sea una clase. Entonces notarás que la línea correcta es blanca. Funciones. Esta es una función o un método que va a ser blanco. Y los métodos suelen caracterizarse por paréntesis abiertos y cercanos. Y luego cada línea, o el 90% de las líneas que escribiremos al menos y con punto y coma. Para que el punto y coma sea muy, muy importante. No, fíjate si me perdí ese punto y coma o escribo mal algo y Visual Studio no puede entender a qué me refiero. Te dará esa línea roja ondulado. Y si usa Microsoft word, entonces eso es algo con lo que estás familiarizado. Esto va a indicar que hay algún error con el código que he escrito porque la sintaxis como la carne reglas muy específicas para ser aceptado por nuestro editor. Una vez que el editor detecta que hay algo mal con la sintaxis o lo que hemos escrito. Nos va a dar las que son líneas rojas. A veces estas líneas son las flechas. Si pasas el cursor sobre la línea, te dirá cuál es el error. A veces no puede decirte cuál es el error Alt, con razón aquí otra vez, para mí que se espera el punto y coma, ¿de acuerdo? Si pongo el punto y coma, ese se va. Pero en éste no sabe lo que tenemos razón. Es sabe bien. Pero tal vez no sea capaz de determinar que la mentira es solo una versión mal escrita de variedad. Ahí es donde puede fallar. Para que siempre puedas pasar el cursor. Y luego puedes hacer click sobre esta bombilla, que tratará de darte algunas sugerencias. Aquí, Visual Studio, especialmente en 2022, se ha vuelto tan inteligente que en realidad puede ver contextualmente esta vez que probablemente sea solo un cambio tipográfico ¿verdad? A la derecha. Y supe que si hago clic en eso, se reunirá con el coraje para mí. Y entonces esa línea desaparece. Que todo esto Visual Studio te está ayudando activamente a escribir mejor código. Si cometí un error mayor que eso , algo como esto. No, no sé qué puede hacer en esta situación para ayudarme porque sólo va a decir que esto no existe, no sabe qué es esto. Está sugiriendo un error. Éste todavía está viendo. Esta es una variable que nunca se utilizó. No hay variable ahí con ese nombre, etcétera Solo te estoy mostrando que hay algunas áreas con las que pueden ayudarte y a veces simplemente no va a saber qué hacer. Entonces de vez en cuando, te refieres a la necesidad de terminar buscando en Google. Ya sabes cuál es tu error. ¿ Estás acabas de borrar todo y trataste de escribirlo de nuevo desde cero y ver toda la visa estética y ayudarte. Ahora otra cosa que no resalté fue el hecho que estamos consiguiendo a estos fríos equipos ocultos. Al ir a la siguiente línea, Visual Studio está haciendo una suposición de que tal vez quería hacer otra línea. Entonces al presionar Tab, en realidad puedo aceptar ese bloque viejo de texto de grado. Lo que pretendo hacer si quisiera consolar. Pero esta vez, ya ves cometí un error consola dot. Y luego verás aquí cuando hagas un punto, en realidad obtendrás esta cosa llamada inteligencia, sugiriendo métodos o propiedades potenciales que puedes usar para completar lo que estás haciendo. Muy bien, así que a veces, quiero decir, no vas a memorizar cada método solo para escribir. Es su zona horaria, simplemente no lo harás. Entonces una vez que hagas los puntos, Visual Studio va a hacer sugerencias y ver a lo mejor quieres ancho de buffer, tal vez quieras leer línea y él empezó a escribir y va a filtrarlos ya que Sí, quiero leer línea. Y luego puedes usar eso. Otra cosa a notar en este punto es que si no eligiste esa sugerencia, algo pasó, te alejaste. Y luego las sugerencias cuando hasta que consigamos el MAC es el control y el espacio desde la parada completa son si estás escribiendo te lo sugerirá. Pero digamos que presionas el Escape o has hecho clic lejos y ni siquiera tienes esa línea de autocompletar disponible para ti. Quieres saber cuáles son tus opciones. En realidad se puede hacer el control del espacio y luego verá sus opciones. Y voy a ser honesto, he estado haciendo esto desde hace años y queridos tiempos no sé qué hay que venir después, hay momentos en los que Control Espacio y me desplazo a través de algo parece lo que estoy buscando. Y estoy seguro de que mucha experiencia desarrolladores de C-sharp te dirán lo mismo. Entonces solo digo que decir que no hay vergüenza llegar tan lejos y no necesariamente estar seguro, qué quieres hacer a continuación. Es por eso que Visual Studio está diseñado de esta manera para darte ese IntelliSense para que te ayude para que puedas estar desplazándote. Y luego dijo, de verdad quiero escribir algo o quería tomar insumos. Quiero leer algo, AAC leer, leer, leer, leer luz. Tal vez intentemos leer la línea. Y entonces puede usar tu pestaña y un autocompletar eso, ¿verdad? Quiero decir, no puedo mostrarte cada matiz y todo sobre Visual Studio en video de 15 minutos. Hay cosas que simplemente hablarías como iguales a lo largo. Y mientras escribimos código juntos, estaré señalando ciertas cosas viejas. Siempre mostraré tus atajos de teclado. Entonces, ya sabes, como escribir un comentario en C-Sharp sería slash, slash o slash asterisco y una slash de asterisco. Y éste es, le permite hacer múltiples líneas de comentarios. Muy bien, así que si necesitas una amenaza a un párrafo, usarías éste. Si quisieras solo una línea de comentarios, usarías esa. Porque la siguiente línea no sería comentada. Teclado Sharp código para ello. Esa sería clave de Control y ver si tienes línea de código que ya no eres. No quieres que se ejecute. Quieres entrar a decirte que aguantas, descontrolas, presionas la tecla y luego presionas C mientras sigues manteniendo presionado el control. Si quieres descomentar, será la clave de Control. Tú, estás manteniendo presionada Control e impresionantes letras K y C para comentar, y luego descomentar. Mantener presionada Control. Pulsas tecla y tú, esas son cositas que te voy a estar mostrando si quieres duplicar esto y lo haces Control y D. Muy bien, nuestro CV de control, que es realmente un copia y pega, pero te das cuenta que no resalté la línea y digo Copiar luego pieza Acabo de tener el cursor ahí y luego manteniendo pulsado Control C y luego v, y luego simplemente lo duplicó. El control D puede funcionar para usted en función de su configuración de desarrollo. Significa no haber tenido ráfaga y ver a los que no funcionan para ellos, pero el control CV generalmente funciona de esa manera. Para el bit final de la tienda, te voy a mostrar cómo ejecutas tu aplicación. Entonces en este punto tenemos algún código que se supone que debe imprimir a la consola o donde haciendo programación de consola. Programación de consola porque en el nivel más básico, en la mayoría de los lenguajes que están diseñados para escritorio, vas a tener una consola. Entonces cuando decimos consola, nos referimos como línea de comandos. Si alguna vez has hecho entrar en línea en tu máquina, qué es Windows, Linux o Mac. Se vería algo así. Esta es tu consola. Entonces cuando decimos consola dot write y yo, y en realidad estamos llamando a la funcionalidad subyacente que usa esta ventana del símbolo del sistema. Y viendo que quería imprimir cualquier texto que he esbozado aquí. Esta ventana. Cuando vas a estar probando tu aplicación en Visual Studio, tienes la opción de ejecutarla, y esto es usando la depuración. Ejecutarlo sin depurar las balas afiladas del teclado sería F5 para imitar depuración y control, además de F5 para imitar sin depuración. Más adelante, veremos lo que significa la depuración. El efecto neto general es que cuando presionas estos cualquiera de estos botones de reproducción, debe ejecutar el código que has escrito. Y debería aparecer en pantalla y mostrarte lo que el alt sale de tu código es, ya sea o no es deseable ahora es donde entra la programación, haces tus modificaciones y puedes llévala al punto que quieres que sea. Pero para ejecutarlo, solo vas a presionar el botón Inicio. Y entonces empieza a depurar CDC, se acerca la ventana de salida y es darme todo tipo de estadísticas. Y luego obtienes esa ventana de consola que se parece a un símbolo del sistema. Y luego obtienes tu línea HelloWorld. Y te está diciendo que el código ejecutado desde esta ubicación. Ese es un archivo ejecutable. Muy bien, por lo que cualquier instalador, cualquier aplicación que ejecute suele ser un archivo ejecutable. Y luego dice que lo hará automáticamente, bueno, te están dando la opción de cerrarlo automáticamente, pero no necesariamente queremos eso. Podemos simplemente presionar cualquier tecla para cerrar esta ventana. Entonces si presiono enter, solo cerrará la ventana y nos devolverá a Visual Studio. Y eso es realmente todo. Entonces esa fue una aplicación muy sencilla Hello World que nos dio Visual Studio. Entonces sí, el proyecto se llamaba Hello World. Pero el código se generó para nosotros no porque el proyecto se llamara así. Antes de irme sin embargo, déjame darte un pequeño recorrido por el Explorador de soluciones, pesar de que voy a ampliar en esto un poco más, aquí está el nombre de la solución. Entonces recuerda que dije que teníamos una solución diferente a los proyectos o proyectos. Entonces tenemos la solución llamada programación de consolas. Y luego tenemos el primer proyecto llamado helloworld, que con un solo clic revelará un archivo XML que nos permite cambiar ciertas cosas. No nos vamos a meter en eso ahora mismo. Entonces tenemos dependencias. No tienes que preocuparte por eso, ¿verdad? No. Y luego tenemos un archivo llamado program.cs, que es nuestro archivo de clase con mangueras en frío. No podemos múltiples archivos, por supuesto, en nuestro proyecto, que estaremos viendo a medida que avanzamos. Entonces eso es realmente todo para el recorrido, el recorrido general de visual Studio, lo que trae a la mesa y te ayudará a escribir código limpio y maravillosamente ejecutable. Cuando volvamos vamos a ver la diferencia entre un proyecto dotnet six y las versiones anteriores de dotnet. 5. Comprende la diferencia entre . NET 6 y versiones anteriores: Muy bien chicos, así que me preguntan que estuvimos aquí la última vez que creamos nuestro primer proyecto de programación de consola, lo llamamos helloworld. Y exploramos algún código. También exploramos Visual Studio en un todo. Y lo que quería hacer es simplemente explorar la diferencia entre esta plantilla de programación de consola y las que habríamos obtenido de dotnet five o 3.1 o incluso dotnet framework si lo usáramos. La forma simple y sencilla de conseguir un nuevo proyecto es directamente la solución central. Muy bien, así que recuerda Solution Explorer. Tenemos la solución arriba arriba y se caracteriza cama en cinta púrpura dentro de esa ventana. Y entonces el proyecto tiene la insignia que nos da el lenguaje en el que se escribió este proyecto comido o se supone que debe estar escrito. Para que podamos hacer clic derecho en la solución. Después vamos a Add. Entonces decimos nuevo proyecto. Entonces esta pantalla debería verte muy familiar para ti. Esta es la misma pantalla que usamos para agregar el primer proyecto. Podemos elegir consola arriba. Y porque tengo en mis filtros, lo estoy viendo de cerca y personal, pero si acabo claro, entonces voy a ser medallista chocado, voy a ir con una app de consola. Entonces éste lo voy a llamar hola mundo. Ninguna sugerencia a la hora de nombrar tus proyectos. No uses espacios. Te sugiero que no uses espacios. Eso es uno. Muy bien. No uses espacios a nombre del proyecto y camelCase tus palabras. Notarías que mi Hello tiene mayúscula H y el mundo como mayúscula W. Para fines de legibilidad, es una palabra, sí, pero al menos con las mayúsculas, se puede ver dónde se detiene una palabra y otra comienza en el bloque contiguo de caracteres. También te sugeriría que te mantengas alejado de personajes especiales. Esa en realidad es la única que realmente uso es un guión bajo en nombrar proyectos. Y estas son más sugerencias porque más adelante puedes terminar con algunos temas que a otras plataformas no les gustan, guiones y demás. Puedes usar un guión bajo y a veces verás que la gente usa un punto. No sólo perfectamente bien fuera de curso. Por lo que puedo decir helloworld dot y llamaré a esta red cinco, que sabemos que esta es la aplicación Hello World y su relativa a los archivos dotnet. Entonces por eso me nombré es muy importante. No hay indicios de que éste se haga realmente a las seis. Pero debido a que todo el curso está construido nuestro propio dotnet busca no va a ser específico sobre todos los proyectos que se están haciendo a las seis. Sólo estoy destacando éste porque este es el valor atípicos. HelloWorld.net cinco. Y luego hacemos clic en Siguiente. Y luego éste, voy a asegurarme de que sepa que estoy usando dotnet F5. Entonces voy a golpear Create. Muy bien, entonces ahora nuestro nuevo proyecto es, y si lo miras, verás que tenemos dos proyectos. Si los colapso, los verás de forma individual. Verás el HelloWorld y verás helloworld.net F5. Si te expliqué Hello World, ves los archivos de HelloWorld. Si expando HelloWorld, lo hago cinco, se ven los cinco archivos. Observe que la herramienta proyecta al menos en la base de nuestra idéntica en cuanto a lo que obtienes. Obtienes el archivo program.cs. Comparemos estos archivos program.cs. Ya establecimos que así es el archivo dotnet six program.cs. Agradable, limpio, literalmente una línea, agregamos esa tierra adicional. Bueno, déjame volver a los impagos. Eso es lo que tenemos para aguantar la caja. Ahora mira el archivo dotnet F5. Aquí está pasando mucho más. Bueno, ¿cómo se llama una declaración de uso? Por lo que uso declaración es una declaración que dice que necesito usar esta biblioteca en su sistema. Entonces cada máquina Windows, cada máquina Markov o Linux, tienen ciertas bibliotecas, son ciertos bits compilados de código que están disponibles a nivel del sistema. Que cuando estás escribiendo una aplicación, realmente puedes escribir una aplicación para acceder a ellas en cualquier máquina. Cuando decimos usar sistema, significa que cualquier máquina en la que se va a ejecutar, por favor intente acceder a esa biblioteca llama. Esta biblioteca del sistema es lo que es importante para que nuestra consola esté en funcionamiento, razón por la que dije que usa el símbolo del sistema. Cuando incluimos eso, entonces tenemos acceso a ciertas funciones, son ciertos bits de código que acceso más bajo por sí mismo, el sistema. Verás este llamado espacio de nombres. No, namespace es la representación de código de la carpeta en la que se encuentra el archivo. Así que en pocas palabras, cada proyecto que aparece en el disco, Project Explorer es realmente una carpeta en nuestro sistema de archivos. Muy bien, literalmente es una carpeta. Entonces si hago clic derecho en esto y veo abierto, lo siento me perdí ahí. Si hago clic con el botón derecho y digo carpeta abierta en el Explorador de archivos, literalmente lanzará un explorador de archivos mostrando ese sentido de los archivos, todos los archivos involucrados en el programa. Si subo, eso es programación de consola. Programación de consola, es decir uno, ese es el nombre de la solución, Esa es una carpeta. Entonces tienes esa carpeta, vale, no hay nada ahí. También tenemos hola mundo. Recuerda que nosotros. Atornillarlo a ese proyecto. En la lección anterior, tenemos hola mundo, dotnet F5. Ese es otro proyecto. Sólo te estoy mostrando eso. Eso es todo lo que realmente es el espacio de nombres. Es sólo el nombre de la carpeta. Entonces si tienes subcarpetas y archivos de entrada en esas subcarpetas y el espacio de nombres sería automáticamente más completo dot, dot, dot, dot para toda la ventana de jerarquía de carpetas. A continuación, notarás que tiene declaración de clase llamada programa de clase interno. Y dice llaves rizadas abiertas y cercanas. Y tenemos una función principal de vacío estático, que luego baja para imprimir nuestra línea de código helloworld. Entonces lo único real que estos dos tienen en común es que ambos están usando la consola dot read line para imprimir. Conocer lo que hicieron los ingenieros de Microsoft por dotnet seis se redujo mucha de la repetición porque en todas las versiones de.net Framework arriba en la red cinco, así es como se vería el código. lo menos, por defecto, siempre empieza con ese vaso y siempre empieza con esa función media. Lo que hicieron fue la repetición Echo Dot. Entonces todo el mundo sabe que estos dos son requeridos al mínimo. Entonces dijeron: Bueno, sólo vamos a hacerlo implícito. No queremos que esa consola necesite usar sistema para que podamos cumplir eso está implícito también. Y acabamos de llegar directamente a los no-puntos de codificación en el alma porque basado en la versión que son capaces usar baja y es seis se limita a Visual Studio 2022. Bueno, si estás usando gemelo a 19 por cualquier razón, y tienes que usar done it five en lugar de hacerlo seis, entonces así es como se verá tu código. Pero todo lo que vamos a estar haciendo por dotnet busca, es muy posible para un fuego dominante. Acabo de recordar que todo tu código está siendo escrito dentro la función media y todo opera su propia función principal. Si tienes que ir a otra función, entonces lo haces dentro de la clase. Si tuvieras que ir a otra clase, tienes que hacerlo dentro del espacio de nombres. No quiero confundirlos chicos. Solo quería mostrarte cómo se ven las plantillas C-sharp más antiguas frente a las plantillas C-sharp más nuevas y ayudarte a apreciar por qué uno se ve de la manera que lo hace y por qué la otra se ve de otra manera? No, antes habíamos hecho clic para, con un clic en el proyecto, pudimos ver este archivo XML. Aquí es que la unidad en el tipo de salida es punto EXE. Ese marco objetivo es dotnet seis y se habilitan nuevos usos implícitos. Lo veremos más adelante, y está habilitando ningún nivel. También veremos eso más adelante. Si nos fijamos en el dotnet cinco, verás que tiene menos parámetros de configuración, pero solo está diciendo que el framework objetivo es 5. Sigue siendo la misma etiqueta de salida. Si haces dotnet Core de tres puntos un proyecto, se vería igual que esta plantilla de proyecto, plantilla de código, excepto creo que esto probablemente sería público en lugar de interno. Nos fijamos en la diferencia entre los posteriores y el archivo XML, el archivo de configuración del proyecto se vería ligeramente diferente también. No obstante, como dije, nos estaremos centrando en dotnet seis. Por lo que fui a dejar allí el proyecto dotnet cinco para referencia. Pero vamos a estar centrándonos en dotnet seis en el futuro. 6. Desarrollo con código de Visual Studio: Hey chicos, En esta lección vamos a estar mirando una alternativa a Visual Studio 2022. Por lo que puede necesitar una alternativa por varias razones, Visual Studio está realmente creado para máquinas Windows y Mac OS. Y su máquina en general simplemente podría no estar haciendo un buen trabajo fuera de ejecutar Visual Studio, lo cual está bien porque es una aplicación muy enorme que requiere ciertos recursos que no todas las máquinas pueden proporcionar regularmente. Eso está bien. Entonces Microsoft nos ha dado una buena alternativa ligera que es multiplataforma, lo que significa que se ejecuta en cada sistema operativo y es muy fácil de configurar y usar, y esto es Visual Studio Code. Conoce lo primero, hay dos cosas que necesitas. One Visual Studio Code, pero también es necesario instalar manualmente el tiempo de ejecución de dotnet six. puedas llegar a eso haciendo un simple Google search.net six Runtime o ASP.Net Core seis tiempo arruinado, cualquiera que sea, entonces eso te permitirá instalar el SDK en cualquiera de los sistemas operativos que tengas. Una vez que hagas esto, instalará los binarios en tu sistema y podrás usar dotnet six. Ahora si ya tienes instalado Visual Studio, vino empaquetado con él. Por lo que no necesariamente tienes que hacer este paso de nuevo. ¿ Está bien? Una vez que tenga el tiempo de ejecución, por supuesto, sigue adelante y descarga Visual Studio Code. Continúa e instala el que sea adecuado para tu sistema operativo. código de Visual Studio de nadie está instalado. Obtendrás una ventana lo suficientemente simple como para que puedas aumentar o disminuir la visualización desactivando usando Control Plus o Control menos en tu teclado. No, desde aquí, querrías configurar tu espacio de proyecto. Lo que me gusta hacer es crear una nueva carpeta y luego usar esa carpeta, mi punto de operación, por así decirlo. Entonces fui a abrir carpeta. Y al abrir carpeta me preguntará qué carpeta quiero abrir, navegue hasta donde almacene proyectos. Entonces en esta carpeta de proyectos, voy a crear una nueva carpeta. Voy a llamar a la programación de la consola solo para estar en línea con todo lo que hemos discutido antes. Programación de la consola y, a continuación, seleccione esa carpeta. Una vez que tenga esta carpeta, voy a querer guardarla como espacio de trabajo también. Por lo que sólo puedo ver un archivo y Guardar Workspace As. Y entonces solo dejaré esto como tal vez consola, espacio de trabajo de programación de consola. Que sé que una vez que abro ese archivo, se abrirá esta carpeta con todos los proyectos y todo lo que hay. Puedo ver si eso fuera de tener el espacio de trabajo, me gustaría tener carpetas por proyecto, la misma manera que Visual Studio, cada una con cada proyecto que creamos, nos dan una nueva carpeta y entonces se espera a iRange los archivos relacionados a un determinado proyecto. Voy a crear una nueva carpeta en lugar de este espacio de trabajo. Y lo voy a llamar, digamos helloworld dot VS Code. Espelta incorrectamente. Siempre puedo hacer clic derecho y renombrar. Ahí vamos. Hola mundo. Sí, cotizar, saber, crear el proyecto ahí dentro, diferencia de Visual Studio, nos da un buen asistente y una interfaz visual de usuario. Tengo que usar comandos. Puedo ir a determinador, trayendo una nueva terminal. Y luego dentro de esta terminal después de asegurarme de que estoy apuntando a uno, la carpeta de la tarjeta y luego ejecutar ciertos comandos. Entonces la carpeta de cambio, lo que quieres hacer es decir cd y luego empezar a escribir el nombre de la carpeta que quieras. Entonces quiero hola, mundo, puedo presionar Tab y se autocomplete eso para mí. Presione Intro. No, estoy mirando la carpeta helloworld. Ese camino. No mucho es la carpeta a la que estoy apuntando. Mixto. En realidad quiero crear el proyecto. Por lo que puedo decir dotnet solo por writing.net, puedes ver si tienes el tiempo de ejecución o el SDK instalado correctamente. Si no obtienes algo parecido a esto, entonces probablemente necesites ir e intentar instalarlo de nuevo. Pero puedo decir dotnet, nueva consola. Entonces estoy viendo dotnet, la capa. Por favor dame un nuevo proyecto de consola. Y con solo presionar Enter se va a llenar esta carpeta que apunté con archivos que son propicios para hacer programación de consola. Cuando hago clic en program.cs, que es un archivo C-Sharp, obtengo mi one-liner, igual que todo lo que vimos, ese program.cs en Visual Studio. También puede obtener un pop-up diciendo que necesita activos adicionales. Se puede decir que sí. Ahora otra cosa que es muy importante para tu experiencia aquí en Visual Studio Code, extensiones para la programación César, es posible que hayas conseguido un dicho pop-up. Sugieren esa extensión si no llegaste, eso está bien. Si vas a Extensiones, entonces buscas un C sharp. Verás en la parte superior, C-sharp para Visual Studio Code vertida por Omni Sharp. Vale, eso es agradable saberlo. Pero la parte relevante es que definitivamente quieres instalar esto para que obtengan algún código insinuando algo de inteligencia para ayudarte con tu programación C-Sharp en diversa en esta interfaz. Por lo que verías en el botón Instalar como este al hacer clic en esa extensión. Para que puedas seguir adelante e instalarlo. Y una vez que lo tengas instalado, puedes proceder. Ahora para ejecutar tu aplicación, lo que querrías ver es dotnet run. Diga dotnet run. Fue empezar a compilar y luego te mostrará la salida o los resultados en lugar de los terminales. Entonces lo bueno de determinante es darle acceso directo al mismo tipo de consola que aparecería cada vez que ejecutamos una aplicación en Visual Studio sin ir externamente en el lanzamiento toda otra consola, puedes hacer todo aquí mismo en esta interfaz. Puedes ejecutar, puedes ir y correr. Puedes empezar a depurar si lo deseas, lo que te daría una experiencia ligeramente diferente si comienzas en la depuración. Pero el punto es que en realidad verías todo dentro del código de Visual Studio sin realmente necesitar lanzar una ventana externa. Por supuesto, cada detalle tiene sus pros y sus contras. Este es agradable y ligero y se puede ver que nos trae un sabor ligeramente diferente a toda la experiencia de desarrollo. Pero dicho eso, todo lo que vamos a estar haciendo en Visual Studio es en realidad reparado, replicable, replicable, cualquiera que sea esa palabra. Pero se puede imitar en Visual Studio Code para ayudarte a tener una experiencia muy similar. Lo último que les voy a mostrar chicos es cómo se pueden gestionar múltiples proyectos dentro de este espacio de trabajo. Así que pensemos en nuestro espacio de trabajo de programación de consolas como nuestra solución. Y luego tenemos diferentes carpetas que representan cada proyecto. Dentro de esta carpeta de programación de consola, me gustaría crear un nuevo proyecto. Llamemos a esto hola mundo, igual que lo que hicimos en Visual Studio. Hola mundo, dotnet f5. Déjame hacer bien mi ortografía. Ahí vamos. Entonces si quería crear un proyecto en lugar de esta carpeta, tengo que asegurarme de que estoy apuntando a esa carpeta. Entonces tengo que decir algo como CB. Y luego fui a ver una barra de puntos, barra puntos cortada cortó el Goldbach. Porque míralo. El camino es HelloWorld VS Code para ver cd dot dot para volver a la programación de la consola. Por lo que el CD del NCI y luego empieza a escribir Hello World y presiona Tab hasta que vea la carpeta que me interesa, que es.net cinco, presiona Enter. Y entonces puedo decir dotnet nueva consola. Y con solo usar las teclas de flecha arriba y abajo, puedo pasar por comandos recientemente o previamente mecanografiados. Por lo que tengo que decir dotnet nuevo, permítanme aumentar el sistema, asegura de que estés viendo claramente dotnet nueva consola. Pero cuando fui a especificar la versión, tengo que decir dash F net F5. Por lo que esto solo funcionaría si ya tienes instalado el SDK de dotnet F5, cual probablemente lo hagas si instalas Visual Studio. Si instalas el SDK, manualmente el clavo después, vuelve atrás y consigue esa versión en particular. Pero cuando presiono Enter, nota dentro de la rosquilla cinco, estoy obteniendo ese nuevo proyecto así como las plantillas de proyecto, la plantilla de código para HelloWorld y hecho a las cinco. Eso es esencialmente todo el código de Visual Studio funcionaría. Lo que puedes hacer es por cada presupuesto que vamos a crear en Visual Studio, solo crea una nueva carpeta, ejecuta ese comando, y luego puedes empezar a codificar en consecuencia. 7. Revisión de secciones: Muy bien chicos, hemos llegado al final de establecer nuestro entorno de desarrollo. Por lo menos, cuatro están en diverso un hit, así sucesivamente, la programación de la consola C-sharp. Tenemos dos herramientas a nuestra disposición. Contamos con Visual Studio 2022. Estamos utilizando la Community Edition, y aquí vemos que es una herramienta verbal completa en la que Microsoft ha invertido mucho para asegurarnos de que como desarrolladores de dotnet, tengamos una justa, cómoda espacio de trabajo a utilizar. Y nos va a ayudar a escribir algún código limpio y completo de Paul. Nos fijamos en cómo podemos reorganizarlo para su propia comodidad moviendo estas secciones de la Barra de Herramientas, las diferentes partes, mirando los diferentes temas todo el fin de semana, ejecuta un programa. Podemos agregar múltiples proyectos a una sola solución y todo así. Fuera de eso, también miramos el uso de Visual Studio Code. Visual Studio no es una opción para ti ya sea por tu sistema operativo o por las especificaciones de tu sistema. Visual Studio Code es una alternativa muy, muy ligera, capaz y perfecta al uso de Visual Studio. Hay otros editores por ahí, pero esos generalmente cuestan dinero. Así que solo te estoy mostrando todas tus mejores opciones sin tener que gastar mucho o si algún dinero por delante. Visual Studio Code es un bonito editor ligero que nos permite, consigue nuestros proyectos creados con unos sencillos comandos en un terminal incorporado y llegar a escribir algún código con todo eso siéntate y no te quedes por ahí. Vamos a empezar a enfocarnos más en el lenguaje C-sharp a medida que avanzamos. Y estaremos aprendiendo a construir algunas aplicaciones hermosas. 8. Comprende la síntesis de C#: Muy bien chicos, entonces en esta lección vamos a dar un paso atrás y mirar cómo podemos continuar nuestro desarrollo en diverso lanzando un proyecto existente y el proceso con la programación? No, no había mencionado desde cuando estamos haciendo la configuración que a la izquierda verás proyectos recientes. Entonces aquí hay un montón de mis proyectos recientes. Pero aquí está la que quería enfocarme, que es la que hemos creado juntos. Si cierras tu Visual Studio, apaga tu máquina, fuiste a cenar, sea lo que sea, buck familiar, quieres volver a saltar a un proyecto en que estás trabajando o una solución en la que estás trabajando en, entonces lo verías a la izquierda. Los proyectos más recientes saben que podría haber un momento en el que trabajas en tantos que no ves enumerados allí, siempre puedes ir a abrir una carpeta local o abrir un proyecto o solución más bien. Por lo que querrías abrir nuestro proyecto o solución. Así que señalemos esa ruta porque ésta, dice fácil como hacer clic en ella y traerá a Visual Studio con la solución. Si no está ahí, entonces quieres ir a abrir un proyecto o solución, que luego te permitirá madrigueras a donde podría estar el proyecto. Por lo que en realidad puedes simplemente navegar hasta que veas el proyecto o el nombre de la carpeta de la solución. Y luego verá aquí este archivo, que es un archivo de solución. Soy archivos de Solución. Cualquier enfoque FCS para nosotros, no vemos en el archivo de proyecto CS de Visual Studio Code. Es un CFI que uno que lo hacemos clic en Visual Studio sacó a la luz esa configuración XML. El archivo de solución lanzaría Visual Studio con todos los proyectos y archivos asociados a la solución. En términos generales, el nombre de ese expediente será el mismo nombre. Ellos verían como el nombre de la carpeta. Si haces doble clic en eso, realmente hará lo mismo y lanzará Visual Studio con esa solución. Ahora que parece archivo de solución se puede encontrar desde tu sistema de archivos si fueras a navegar por ahí y puedes, puedo navegar fácilmente haciendo clic derecho y decir Open File, Open Folder. Entonces si iba a navegar aquí manualmente, aquí está ese archivo. Si hago doble clic en ese archivo, se lanza Visual Studio con mis proyectos. Sólo te estoy mostrando lo fácil que es reanudar donde tendrías que levantarte. Al conocer esta parte de las lecciones nos vamos a centrar en el lenguaje C-sharp, la gramática, vocabulario, y la sintaxis de latidos generales que usarías para escribir código. No vamos a aprender todo el idioma aquí y no voy a ser div, estando demasiado profundamente en ciertas cosas. Solo te estoy dando una amplia visión general de cómo se ve C-sharp. C-sharp es el lenguaje de programación de primer nivel que nos da Microsoft para la plataforma .net. Tiene un parecido cercano con el lenguaje C plus plus RC. Entonces es una parte del lenguaje C es una especie de botch. También se necesita mucho de sus construcciones de otros lenguajes de programación orientados a objetos como Java. Si estás alerta, si has aprendido C, y si has aprendido Java, que mucho de lo que C-sharp está haciendo te parecerá familiar si no has aprendido tampoco. Y esta es tu primera vez haciendo programación. Una vez más, no hay problema. Voy desde lo básico, por lo que podrás coger. Ahora C-Sharp en este punto está en la versión diez, sí pasó por muchas versiones con cada iteración del framework .net en dotnet Core. Y puedo simplemente eliminar, sigue mejorando y mejorando. Pero una cosa con la que debo venir en Microsoft es su capacidad para actualizar el idioma manteniendo vivos ciertos regímenes, arreglos o paradigmas más antiguos . Así que a pesar de que puede introducir una nueva forma de hacer algo allí, todo el camino fuera de escribirlo en versiones anteriores de C Sharp no quedará en desuso. No es como que vaya a decir, oh, eso ya no puede funcionar, hay que cambiarlo. Por lo que hacen un excelente trabajo de actualización. Destruyendo código más antiguo. C sharp también es de código abierto y puedes ir a su repositorio de proyectos en GitHub yendo a github.com slash.net slash.net slash pulmones C-sharp. Código abierto significa que todo lo que estás haciendo el lo han puesto a disposición. Todo el código subyacente que han escrito representan nuestra propiedad que usted estará utilizando. Te dan el zapato, las implementaciones y todo lo que puedes entrar y ves exactamente cómo funciona. Incluso puedes hacer aportaciones aquí. Ves aquí que hace 125 colaboradores. Claro, no todos ellos son empleados directos de Microsoft. Para que a medida que te pongas cada vez más cómodo, podemos empezar a mirar esta biblioteca, mirando cómo se hacen ciertas cosas y viendo si puedes mejorarlas. También. Saber antes estábamos mirando ciertas cosas que son ilegales. Hay ciertas cosas que simplemente no puedes hacer en la sintaxis. Hay ciertos propósitos específicos de Tolkien de ese servidor. Entonces como un hashtag o un signo de número o signo de libra tiene la regla muy específica de abrir de una sola vez estos como que acabo de decir estanque. Puedo decir error de Polonia. Seguro. Cuando pueda decir algo que yo versión, note que estoy obteniendo esta línea roja en la versión. Lo hace porque no es algo que está en el vocabulario. Así que al igual que con el inglés o cualquier otro idioma que hablaras, hay ciertas palabras que simplemente no están en el vocabulario. Palabras que no usas porque no están aparte del lenguaje, son de la misma manera cuando estamos escribiendo C Sharp o cualquier otro lenguaje de programación para ese asunto. Si el lenguaje no detecta lo que estás escribiendo como parte de su sintaxis, entonces obtendrás ese tipo de línea roja. Empecemos con qué comentario. Un comentario es una buena manera de documentar lo que está sucediendo en tu lectura en frío. Para que podamos escribir un comentario usando slash slash. Y entonces podemos ver esta línea imprime hola mundo. Entonces esta es una buena manera de informar lo que ganó, recordándote lo que hace el código o informar a alguien más lo que se supone que debe hacer. Si tienes todo un párrafo que quieres escribir. Para que puedas ver barra y asterisco. Observe que todo después de la barra y el asterisco se volvió verde. Entonces eso es solo la codificación de colores para mostrarte que es un comentario. Pero entonces puedes cerrarlo con otro asterisco y otra barra. No quería que hicieras eso. Cualquier cosa que leas entre los asteriscos sería visto como un comentario. Se trata de todo un parque fuera de comentario en múltiples líneas. Entonces así es como se puede escribir como un párrafo completo describiendo lo que está sucediendo en todo un bloque de código. Entonces esto es por una línea a la vez, esto soporta múltiples líneas. También tenemos lo que usted llama declaraciones. Un enunciado sería una expresión que termina con un punto y coma. Así que en inglés o en la mayoría de los otros idiomas, la declaración suele ser la frase también en comprende de palabras que generalmente tiene un orden específico o se queja. Entonces en inglés dirías el adjetivo antes de lo conocido. En español, se ve el conocido entonces el adjetivo. Pero el hecho es que Eso es espera. Se escribe una declaración en ese idioma en particular. En C-Sharp, esta es toda la declaración está escrita y siempre debes terminar con un punto y coma, aunque en otro idioma terminarías con una parada completa. Si tienes una declaración declarando una variable, por ejemplo, y te explicaré qué es una variable. Bueno, digamos que el nombre var es igual a variable es un espacio de almacenamiento temporal para el detalle. Y luego puedo ver mi nombre. Es esto. Esa es una declaración de que la línea roja está diciendo, Bueno, necesitas terminar tu declaración apropiadamente, así que necesito un punto y coma. Entonces una forma de saber cuándo necesitas un punto y coma es que si escribes la declaración y ves esa línea roja, probable es que necesites un punto y coma al final de la misma si todo lo demás se ve bien, pero aún se obtiene la línea roja. Consulta y comprueba si necesitas un punto y coma. Ahora hay otro constructo llamado bloque. Un bloque sería similar a lo que vimos en la plantilla de cinco C-sharp, y se denota con llaves rizadas abiertas y cercanas. Entonces estos son bloques. Un bloque sería como un párrafo en nuestro lenguaje humano escrito. Los bloques pueden ser espacio de nombres, puede ser para nuestra clase. También puedes ser para método. No lo quise decir a medida que entra, se obtiene bloques para si declaraciones y declaraciones de repetición fuera de las que aquí ejemplos con Eneas, la clase y el método. Si tuviera que hacer como una declaración if, diría si nombre. No te preocupes por esto. Voy a pasar por todo esto. Sólo estoy mostrando sintaxis una vez más. Entonces aquí hay una comparación. Si el nombre es equivalente a. Y luego aquí me está mostrando que me falta algo. Entonces esta es una de esas veces que puede sugerir un punto y coma, pero esto no es una declaración. Un punto y coma no es lo que falta. Entonces necesito escribir la sintaxis del carrito. Hay momentos en que se puede decir, por qué tengo que hacerlo así. Generalmente digo que no preguntes por qué si el lenguaje dice que así es como lo haces, solo hazlo de esa manera. A veces cuando nos fijamos en el porqué bloquea todo el hecho de que así es justo lo que es. Voy a decir si el nombre es igual a algo, obviamente esto no es cierto. Pero voy a que acabo de empezar un nuevo bloque. Esto es decir si esto es cierto, entonces quiero ejecutar este bloque de código que se denota una vez más por nuestras llaves rizadas. No. ¿ Recuerdas que tenemos que importar lo que llamamos namespaces. Entonces quizá haya dicho bibliotecas, pero esta es una biblioteca, es un espacio de nombres. Un espacio de nombres es realmente una colección de clases. C, espacio de nombres tiene una clase igual a múltiples clases. Eso es un espacio de nombres y los que compilan ese espacio de nombres, se convierte en bibliotecas multicolores. Las diferentes bibliotecas de diferentes clases que estás aprovechando. Soul console es una clase que se encuentra en el espacio de nombres del sistema o en la biblioteca. Nadie, C-sharp seis, siempre se puede agregar, estás usando vapor y jabón top usando el sistema. Siempre se puede hacer eso. Y a medida que avanza, posible que necesites saber que está en gris porque ya está implícito que es innecesario. Pero tengo sistema.Out y luego tienes cosas diferentes aquí. Por lo que se podría decir sistema.Fuera detalle, se podía ver esto y aquello lo que sea. El hecho es que si no estás utilizando activamente nuestra clase se codifican referencia por teléfono en el espacio de nombres. Entonces Visual Studio tipo de gris dijo en realidad que no es relevante. Ahora hay momentos en los que tienes ciertos espacios de nombres que quieres usar en múltiples archivos. Ahora en las versiones más antiguas de C-sharp, tendrías que repetir eso en realidad cada vez. Entonces para cada clase que voy a usar en consola, tendría que tener ese sistema usando, usando sistema, usando un sistema. En C-Sharp seis, se nos brinda la oportunidad de agregar lo que llamamos archivo de usos globales. Así que en realidad puedo simplemente crear un nuevo archivo. Y fui a llamarlo usos globales. Así que haga clic derecho en el proyecto. Aviso múltiples proyectos, pero quería dentro de nuestro c-sharp busca proyecto HelloWorld. Haga clic con el botón derecho en ese proyecto, vaya a Agregar. Y entonces puedo decir nuevo ítem. Y luego nuevo elemento me permite agregar un nuevo archivo de clase u otro tipo de archivos. Entonces esta vez me estoy enfocando en nuestro nuevo archivo de clase C-Sharp. Lo estoy llamando global usando este punto cs, y luego puedo agregarlo. Y luego de aquí, no necesito todas estas son que no necesito todas esas cosas. Puedo limpiarlo de eso. Pero no, puedo agregar todas las declaraciones de uso que sé que serán utilizadas globalmente a lo largo de mi aplicación para hacerla. Por lo que sólo voy a decir global frente a ella. Así que solo di global usando global, usando global usando no, no tengo que agregar manualmente estos usando declaraciones en 51015 archivos. Sólo tengo uno por favor. Y luego puedo simplemente mantener mi archivo de código limpio y dedicado a mi código. Ahora, vamos a traerlo de vuelta un poco más cerca de casa y miremos algunas de las mejores prácticas cuando acabamos de escribir nuestro código. Una cosa es la sangría. Cuando tenemos bloques de código, queremos asegurarnos de que estamos haciendo sangría porque no quieres estar teniendo todo en una línea y luego no sabes dónde se abre un corsé rizado y cierra, ¿verdad? Por lo que siempre será bueno. En cualquier momento tenemos un bloque de código, asegúrate de sangrar. Otra cosa es que las aplicaciones en cada lenguaje de programación apuntan por tres estructuras de control. Tenemos secuencia. Entonces tenemos decisiones no necesariamente en ese orden particular, pero tenemos secuencia, tenemos decisiones. Y luego tenemos repetición. Secuencia se refiere al hecho de que siempre irá en el orden en que haya escrito el código. Sólo sé que me viste tomar estas dos líneas de código y ponerlas dentro de cada Stevens y luego nos dieron un error. ¿ Por qué? Porque estoy comprobando una variable llamada name, que aún no existe. La única forma en que puedo escribir una declaración if en contra de esto es si ya lo hice existir. Entonces esa es la secuencia que tengo para asegurarme de que exista, entonces puedo hacer procesos en contra de ella. Muy bien, así que eso es una secuencia. Siempre correrá desde la primera línea. Entonces la última línea en ese orden exacto es buena cuando estás trabajando en tu algoritmo o en el flujo de tu aplicación, la lógica que verás, necesito que esto suceda entonces eso, luego eso, entonces eso. Y luego escribes el código en ese orden exacto. Paso uno, paso dos, paso tres, etcétera. ninguna decisión también se le llama declaración condicional. Significa que voy a tomar esta acción ¿debería ser cierta esta condición? Entonces si esta condición es cierta y estaremos mirando las diferentes condiciones y cómo podemos escribirlas. Pero si esta condición es cierta, entonces quise conseguir esta subasta. Cualquiera que sea el código que esté dentro de este bloque sería como el delgado. Porque si estuviéramos viendo eso en inglés, diríamos si está nublado, entonces quise hacer con esta acción. Entonces diría algo como otra cosa, hacer otra acción. Eso es todo lo que pensamos como seres humanos. Y eso es exactamente un todo. Tenemos que escribir nuestras aplicaciones. Entonces después de decir, si eso es cierto, entonces dentro de ese bloque de código, defiendo lo que voy a hacer. Y entonces puedo ver otra cosa, hacer otra cosa. Estaremos mirando eso más tarde. Y sólo una vez más les estoy dando una idea de lo que queremos decir por decisión o declaraciones condicionales. El siguiente sería la repetición. Entonces si tienes algo que hacer varias veces que tal vez imprimir hola mundo 50 veces, sí tienes la opción de simplemente escribir eso 50 veces, lo cual por supuesto no es muy sustentable. O puedes hacer una repetición. Para que pudieras hacer algo así como bucle. Y sólo voy a hacer un rápido for-loop aquí para explicar la sintaxis. Sin embargo, solo te estoy mostrando lo que dirías para algún número de iteraciones. Todos estos solo definen solo para ver un todo muchas veces que quieres que suceda. Haz esta acción una vez más, puedes ver que está en una cuadra. El recaptación, el interior de ese bloque se repetiría por cualquier número de veces que hayas definido aquí. ¿ Está bien? Entonces esos son algunos componentes clave para escribir programas en general. Pero luego la sintaxis C-sharp, por supuesto, la hace muy específica. Pasamos por completo usando Visual Studio. No voy a meterme demasiado en toda la sintaxis. Lo que voy a hacer es dejar algunos comentarios solo para que podamos recordar lo que aquí se discutió. Y solo voy a borrar cualquier cosa que no sea todo importante para esta aplicación Hello World. Y sólo voy a decir que hay tres estructuras de control en la programación C-Sharp. Secuencia. Y creo que la secuencia es la más importante. Entonces si hubo una secuencia de orden de precedencia llamada sus primeras decisiones y repetición, esas están más basadas en su necesidad. La secuencia de entrada definitivamente gobierna todo porque siempre entra en la arteria que has escrito el código. Eso es realmente todo por solo una comprensión amplia, mirada amplia a la sintaxis de C Sharp. Cuando volvamos vamos a crear un nuevo proyecto. Vamos a ver cómo podemos escribir un programa real que interactúe con el usuario. 9. Programas de entrada y salida: Muy bien chicos, así que hemos estado aprendiendo C-sharp. Nos hemos estado familiarizando con Visual Studio. Vamos a escribir un programa real, ¿de acuerdo? Entonces voy a crear un nuevo proyecto para este nuevo programa, voy a hacer clic derecho o solución, vaya a Agregar Nuevo Proyecto. Y luego queremos otro proyecto de aplicación de consola C Sharp. Voy a llamar a este una entrada, salida. Entrada de salida Clinton. A continuación, sabemos que necesitamos trabajar con dotnet seis y luego creamos. Ahora por supuesto, si estás usando Visual Studio Code, eso significa que crearías una nueva carpeta, harías un nuevo programa de consola dotnet, y luego estarás en la misma etapa nosotros, así sucesivamente. Esta aplicación sobre lo que vamos a hacer es que acabo de escribir comentarios. Uno, declarar lo que llamamos variable. Vamos a baja entrada de usuario y almacenamos en una variable. Entonces vamos a imprimir contenidos de una variable o de las entradas del usuario. ¿Está bien? no lo visualice en cualquier momento que esté utilizando una aplicación, ya sea de escritorio de pizarra, por lo general, como el usuario pondría en detalle, presione, Guardar o algo así. Y luego punto más tarde, necesitaría ver representado a usted por el programa o guardado en punto mililitro. No estamos del todo en la parte donde vamos a ver si es hasta mañana. Pero para null, al menos podemos ver cómo es que recibimos la entrada del usuario y luego enviarla de vuelta. Por lo general, las computadoras hacen tres cosas. Aceptan entrada, el proceso dual, y luego la producen una salida. Esos son los tres procesos de cualquier computadora. Tick entradas, procesarlo, y luego enviar de vuelta proceso de salida , por supuesto, podría ser tan complicado como una ecuación matemática en, podría ser otra cosa. Pero lo que hagamos entre nosotros, tomar el insumo y producir un opiáceo se llama proceso. Muy bien, veamos a declarar una variable. Ahora C-Sharp tiene diferentes tipos de datos. Un tipo de datos es más o menos parecido a un adjetivo que describe la variable y define o indica la variable qué tipo de datos puede almacenar. Tipos de datos en. C Sharp puede ser. Permítanme sólo este tipo de datos puede ser y no se limitan necesariamente a. Sólo estoy mostrando los básicos. Esa será cuerda. Eso sería como palabras y números, como placas de matrícula, como un nombre o un número dividido de licencia. Como dije, Nombres y Números. Todo lo que lo quiera contiene cartas. Puede contener números, puede contener caracteres especiales. Bueno, así es como lo llamamos un arroyo. También tenemos tipos de datos numéricos como entero, que serían más como números enteros, que serían más como decimales, entonces en realidad tienes doble slash float. Hicieron versiones más recientes de C-sharp, en realidad tienes decimal como tipo de datos, pero solo me quedaré con los tradicionales por si acaso en diferentes versiones tengan enteros, tienes doble flotador. También tienes como char. Char representa a un quiropráctico. Muy bien, por lo que podría ser una carta. Podría ser, quiero decir, esto es sólo uno. Entonces ese es el ejemplo de ello. El escrito E o el número siete. Es sólo una cosa a la vez. Podría ser un personaje especial. Esos son todos ejemplos de caracteres. Muy bien, déjame obtener mis derechos de ortografía. Cuerdas serían mis bloques fuera, toma esos bloques de textos, usaremos la comilla doble. Observe que el char utiliza una sola comilla. En un ejemplo anterior, me habrías visto usar mi nombre. Y en el ejemplo predeterminado verías Hello World, eso es una cadena. ¿ Está bien? Tienes diferentes tipos de datos y estaremos pasando por otros. Solo trato de no darte una sobrecarga de información, pero estos son ejemplos típicos de diferentes tipos de datos. Entonces como dije, es como un adjetivo que describe lo que la variable puede almacenar. La variable es el punto de almacenamiento real. Entonces para declarar una variable después del tipo de datos, entonces le doy un nombre. Entonces si voy a querer que el usuario introduzca su nombre, entonces llamaría al nombre de la variable. Entonces la cosa es que quieres ser siempre lo más descriptivo con tu nombre variable como sea posible. No quieres decir dolores de cuerda. ¿ Qué es x? Muy bien, cuando tienes que describirle a alguien que está mirando tu código o incluso tratar de recordar para qué se usó x. Dos semanas después, no recordarás cuando veas algo así como el nombre. Está claro si quieres el borde, probablemente querrías usar entero y C, H. Eso está claro. Si es algo que es más que, más de una palabra como tal vez nombre completo, querrías ver algo así como nombre completo. No hay aviso de cómo escribí éste. No hay especies. Las especies son ilegales en nombres variables. Puedes usar caracteres especiales en lo que respecta a un guión bajo, ese es el único cartílago especial que se permite. No se puede usar un guión, no se puede usar nada más con un guión bajo, va a hacer de esa manera. A algunas personas les gusta usar guiones bajos personalmente, no me gusta usarlos. Son ilegales. No les pasa nada. Entonces si quieres usarlos, no hay problema. Yo sin embargo, confío en lo que llamaremos camello caspa, que es cuando haces venga la primera letra y luego capitalizas cada dos palabras. Usted ve aquí es un ejemplo de Kamil en caso como cuando nombramos nuestros proyectos, habríamos usado caso pasco. Si dijera Hello World como variable y puedo fertilizar la H y la w, entonces esta será la carcasa de Pascal. Muy bien, así que capitalizamos la primera letra así como cada ADL. Primero, eso está fuera de cada palabra ahí dentro. En términos generales, cuando nombras tus variables, quieres usar carcasa de camello porque mejora la legibilidad y cualquiera que la mire, puedes decir que esta es una variable diseñada para almacenar el nombre completo de lo que sea. Muy bien, entonces por eso es muy, muy importante nombrar. Entonces ese es nuestro verso variable simple. ¿Está bien? No, Eso fue el número uno, declarar una variable. Nos fijamos en un tipo de datos diferentes opciones basadas en la información que queremos obtener. String es el mejor tipo de datos para esa información. ¿Verdad? Ahora tenemos que permitirles ingresar esa variable. Entonces, hasta ahora sabemos cómo salir, porque la consola dot write line es lo que nos permite hacer salir. No obstante necesitamos insumos. Entonces, donde hacer a la derecha, queremos herramienta. Si dijo leer el camión cerca de suscribir, queremos consola dot read, line. Nos vemos que siempre digo plazo console.log. La consola en realidad se detendrá y esperará entradas porque no está leyendo algo. A diferencia de escribir tierra donde va a imprimir algo. ¿ Está bien? No por supuesto cuando permitimos que el usuario inserte cualquiera que sea la línea de lectura necesitamos para almacenarla en algún lugar. Porque cuando presionan Enter después de que entre el tipo dentro de los emperadores, la inflamación se devuelve al programa. Pero mientras que la información va, es por eso que tenemos la variable. La variable aquí con la línea verde es quejarse de que está declarada, pero nunca, nunca se utilizó porque no la estamos usando para hacer nada. Sólo lo tenemos ahí. Por lo que la presencia de la misma es importante. Seguro. Pero no está haciendo nada. Por lo que queríamos ver cuando recibas la entrada de la consola, por favor guárdela dentro de esta variable. Fui a ver un nombre completo. Obtendrá su valor de lo que venga a través de la consola. Muy bien, por lo que hay número de formas de escribir este código. Muy bien, sólo estoy tratando de mostrarte la forma más sencilla que puedes ponerte de pie y empezar a trabajar. Uno asegura que existe la variable para asignar el valor a la variable. A esto se le llama una asignación donde lo que esté bajo la derecha entra en lo que esté a la izquierda. Entonces un ejemplo de una asignación, hicimos un ejemplo antes, pude ver una cadena de nombre completo. Te estoy asignando el valor predeterminado de tal vez una cadena vacía, o deberías tener el valor predeterminado de mi nombre. Todo lo que estoy haciendo es ver crear una variable y asignar este valor para establecer variable. Si no pongo la asignación, entonces la variable existirá sin nada en ella. Entonces es lo que vamos a llamar nulo, que es igual que un receptor. No había nada ahí dentro hasta que hagamos una tarea como esta. Muy bien, después de asignar el valor que el usuario ingresa a nuestro nombre completo, entonces puedo imprimir consola, punto, escribir línea. Entonces Visual Studio figura que me gustaría imprimir lo que está en nombre completo. Así que has visto consola dot escribir y luego un montón de semana maravilloso imprimir un valor literal como hicimos Hello World. En este caso, no quiero imprimir la cadena estática porque el usuario no entró helloworld. No sé qué ingresó el usuario, lo que sea para ingresar el almacenado a nombre completo. Eso es lo que quería imprimir. Entonces en lugar de escribir todas estas comillas y esas. Ese bloque fuera de la cuerda. Voy a simplemente imprimir el contenido de mi variable de cadena de vuelta a la consola. Al final de esta aplicación, una vez más, estamos creando un espacio en la memoria. A verbalmente es básicamente un espacio en la memoria, un espacio de almacenamiento en memoria para el tiempo que se está ejecutando la aplicación. Tan pronto como la aplicación deja de ejecutarse, esa variable ya no existe cuando comienzas a superarla la crea. Entonces espera qué entrada? Después hace ciencia e insumos para establecer variable, y luego la imprimimos. Así que declaremos eso por un giro. Sepa, notarás que el botón de reproducción arriba de los mejores estudiantes es Hello World. Eso significa que si presionamos sangra todavía va a ejecutar el program.cs en HelloWorld, no queremos que se ejecute Hello World. Queríamos ejecutar nuestro programa de entrada de salida. En realidad podemos cambiar esto cambiando esta lista desplegable y eligiendo el programa que queremos o proyectar que queremos ejecutar, que sería entrada-salida. También notarás que cuando cambies el que, el proyecto en el que se está enfocando en ese punto, él es el que recibe las letras en negrita en el nombre, ¿verdad? Entonces si lo cambio de nuevo a Hello World, hola Mundo es audaz. Si cambié la salida de entrada, entrada, salida es ambas. Todo el camino para hacer eso es directamente el proyecto en sí. Y haz clic en Establecer como proyecto de inicio. Eso hace lo mismo que una lista desplegable arriba arriba aquí. Si quiero salida de entrada, haga clic con el botón derecho en Establecer un proyecto de inicio. Y no se enfocará en la salida de entrada y el botón Play mostrará lo mismo. Cuando presiono el botón Reproducir, observe que la consola está en la pantalla y simplemente parpadea. Ok. ¿ Por qué simplemente parpadea? No se está imprimiendo nada no está procediendo buscado creado o orilla variable, pero también está esperando en entrada. Salida, mi nombre. A continuación pulse enter. Se procederá a imprimir a la consola y luego se dará cuenta de que se detuvo. Dios, eso es todo lo que le dije que hiciera. Extraño para ti entrada de impresión y lineal hecho. Esta segunda línea es lo que está imprimiendo. Esto es lo que entré. Ahora esto no es muy intuitivo. Estoy seguro de que estás viendo que no es muy intuitivo porque acabas de hacer una pausa para la entrada. Escribí sus aplicaciones. Sé cuál es la entrada de que se está haciendo una pausa en esperarte. Si fueras a recoger esta solicitud por ti mismo sin mi guía, ¿realmente sabrías que esto es lo que quería? No lo harías, y eso no esperaría que ningún usuario realmente sepa que vio lo que querrías hacer por este tipo de aplicación. Al igual que cualquier otra aplicación, si estás gastando mucha forma, por lo general te dicen lo que quieren en el cuadro de texto o para esa entrada en particular que el usuario sepa lo que tú estás haciendo. Por lo que siempre quieres que tu usuario sepa lo que necesita hacer. Siempre puedes imprimir, mantiene tus propios mensajes en pantalla. Entonces aquí fui a decir consola dot write line. Fui a darte la instrucción, introduce tu nombre completo. Y acabo de poner un poco de colon debajo, claro, esto es lo que se está imprimiendo. Entonces esta es una cadena literal que se imprime a la pantalla y decir que querías lucir bonita y presentable, Niza en sí instrucciones. Y luego se hará una pausa para la entrada. Entonces lo que se está imprimiendo. No sé qué se está imprimiendo. Por lo que podría decir algo así como consola dot write line. Tu nombre completo es, y luego imprimimos pantalla lo que el usuario ingresó. Muy bien, entonces estas son las cosas que potencian la forma en que tu obligación. Usted sí tiene. Consola dot write. Primero fue la consola dot write. Consola dot write va a imprimirla en una línea, mientras que la línea de escritura de punto de consola va a moverla a la siguiente línea automáticamente. Vamos a probar este. Así que adelante y corre. Ya ves aquí en ninguna parte viendo ingresa tu nombre completo. Y debido a que hicimos una línea de escritura, fue automáticamente a la siguiente línea para esperar la entrada. Fui a ver mi nombre. Entonces cuando presiono enter, tu nombre completo lo imprime en una línea porque dije bien. Entonces, si quisiera un aviso en una línea, diría justo en lugar de uno, ¿verdad? Y escribiremos línea automáticamente trae a la siguiente diapositiva. Y eso es más o menos. ¿ Lo ves? No es tan difícil para nada. Una vez más, la secuencia importa. Crea la variable, imprime y pide al personal la entrada, luego pesó cuatro entradas, y luego puedes imprimir lo que sea después. Muy bien, así que eso es una salida de entrada simple. Nadie refactoriza rápido que me gustaría mostrarte a esto es que cuando estás pidiendo datos para entrar en la variable, está perfectamente bien realmente solo definir la variable y asignarlo al mismo tiempo. Por supuesto, no se pueden tener dos tareas verbales en la pantalla. Si tú, si creas una variable antes de hacerlo por segunda vez. Pero aquí lo que estoy viendo es crea una variable llamada nombre completo y darle lo que venga del usuario. Entonces eso es en realidad menos líneas de código. Entonces a veces vale la pena crear un programa que use menos líneas de código. A veces van a legibilidad, lo quieres como explícito. Entonces lo voy a dejar así para, para su consumo. Crear la variable, permitir que el usuario ingrese almacenamiento en variable y luego imprima el contenido de las entradas. 10. Tipos y conversión de datos de C#: Muy bien chicos, así que en nuestra última aplicación, echamos un vistazo rápido a cómo podemos declarar variables. Tomamos una breve visión general de los diferentes tipos de datos que pueden tener estas variables. Y luego buscamos aceptar e imprimir información del usuario. Ahora vamos a construir sobre ambos conceptos mientras miramos variables y sus tipos de datos. Una vez más, si cierras Visual Studio y necesitas relanzarlo, siempre puedes simplemente abrir, lo siento si cierras Visual Studio, necesito relanzar el proyecto. Siempre puedes simplemente relanzar Visual Studio 2022. Puedes buscar la obligación o proyecto reciente en el que has estado trabajando o ir a abrir un proyecto o solución. Navega hasta donde compensarías la ubicación del proyecto a estar. Encuéntralo, luego lanza ese archivo de solución. También puedes hacer este paso desde tu propio Explorador. Entonces vamos a proceder. Vamos a crear un nuevo proyecto. Así que sólo estoy haciendo clic en la solución, entrar en nuevo proyecto, consola arriba. Y entonces ésta va a ser variables y tipos de datos teniendo en cuenta o nombres muy estrictos, sugerencias, espacios nulos y caracteres especiales y carcasa Pascal. Entonces hacemos todo eso. A continuación estamos usando dotnet six y luego podemos crear know en nuestro nuevo archivo program.cs. Quiero que veamos las diferentes variables que podemos usar. Y estamos usando ejemplos prácticos, alguien para estar viendo declaraciones y tipos variables. En esta aplicación, vamos a crear un tipo real de formulario de entrada de datos de formulario para nuestro usuario. Queremos nombre, edad, tal vez salario. Hay género y si están trabajando o no. Muy bien, hagamos todos esos. Y al hacerlo, exploraremos hall. Convertimos tipos de datos entre lo que se introduce sobre lo que se necesita en base al tipo de datos que seleccionamos para la variable y cómo podemos imprimir todo todo hoy, final de ella. Ya hicimos un ejemplo con el nombre completo. Entonces aquí puedo ver una cadena nombre completo es igual a. Por lo general, quieres alejarte de, de Knowles. Null, lo que significa que acabo de decir cadena nombre completo. Hay una variable llamada nombre completo, déjalo ser, generalmente se quiere mantenerse alejado de eso. Funcionará. Pero cuando construyes unas aplicaciones más grandes, quieres mantenerte alejado de eso. Por lo que generalmente quieres darle un valor predeterminado. Entonces aquí hay un valor predeterminado incorporado llamado string dot empty. A veces se puede terminar viendo a las personas hacer esto, pero esto es lo que llamamos una cuerda mágica. Y suele ser discurso porque podrías cometer un simple error y no darte cuenta y sería muy difícil averiguarlo más adelante. Entonces tenemos que transmitir puntos vacíos. Dejarás ver los punzantes en el valor para ti. Y será mucho más fácil de mantener y en buen camino, no lo hagas. Veamos edad. Así que quería Edge, voy a usar un entero porque la gente generalmente tendría 2021, no necesariamente 21.8 años. Me gustaría un entero en lugar de un doble o un flotador porque no estoy esperando un decimal para esto. También puede asignar a éste un valor predeterminado. Sólo pondré 0. Aquí hay valores predeterminados, pero terminarías siendo int dot, max o Min, que estaría en cualquiera de las escalas de miles de millones. Muy bien, Así que Min es menos 2 mil millones o 2 billones o algo así. Quiero decir que mux es positivo, ese mismo número. Entonces aquí solo voy a establecer que el valor predeterminado es a 0. Tal vez uno, tal vez una facilidad predeterminada fuera de uno tiene más sentido, ¿verdad? Pero oye, próxima parada, salario. Sin salario. Se podría esperar que los puntos decimales porque el salario representa dinero. Te vendría bien el doble. Entonces si querías hacer un valor predeterminado igual a 0, ese es tu defecto. Probablemente también se podría ver float hace que también toma números decimales, excepto que el valor predeterminado tiene que verse un poco diferente. Entonces tendrías que ver algo así. 0 f. Sólo para mostrarte, solo te estoy mostrando los matices con un tipo de datos diferentes, pero esto también es un decimal es solo decir que hay que ponerte la F para representar eso es un flotador y no sólo un doble regular. También podrías usar decimal. Y si no me equivoco decimal, solo verías como 0. Tendrías que ponerte el sufijo m. ahí vamos. Una vez más, solo mostrándote las diferentes opciones, diferentes matices. Muy bien, así que voy a mantenerlo simple. Puerta doble es bastante buena. Y sólo puedo decir que NOSOTROS sabremos que es un decimal, por lo que 0 es lo mismo que 0. Género. No, probablemente quisiera que el usuario entre M por mí, F para hembra. Y entonces querrías usar un personaje para eso. Entonces yo diría char. Aviso Acabo de escribir accidentalmente un capital C. Capital C char es diferente de CHR común. Fines similares pero diferentes. Por lo que siempre quieres que sean minúsculas cuando estés definiendo tus tipos de variables. Char y género. Puedo inicializar esta única herramienta. No pienses que hay un punto char vacío. Tenemos valor Min y max, y usted tiene una serie de otras operaciones. No van a pasar por todas estas operaciones por el momento. Muy bien, así que aquí solo diré dame el valor medio para el char. Entonces es pedir cumpleaños. No quiero cumpleaños esta vez quiero booleano. Y estás trabajando? Entonces booleano aquí representa verdadero o falso. O ya lo estás, ¿no? Usted está encendido o apagado binario uno o 0. Bool representa esa decisión binaria, ese valor binario uno o 0 verdadero o falso. El trabajo o no funciona. Aquí, sólo voy a omitir a falso. Por lo que notarás que falso falso falso son en realidad palabras clave. Se puede decir que desde su codificación de colores y el hecho de que los resultados a través de ella en realidad está sugiriendo esos valores en el IntelliSense. Para mí. Incluso con una viñeta, si no asigno un valor, por defecto será false. Entonces eso es algo que puedes tener en cuenta si no le das un valor, es por defecto es falso. Si no das valores enteros y dobles, sus valores predeterminados serán 0. Char que por defecto será null de la misma manera que la cadena por defecto será null. A medida que practicas y te pones más cómodo. Sabrás estas cosas. estoy señalando a todos porque he estado haciendo esto desde hace años para que pueda exudar esta sabiduría por experiencia. Ambos estoy esquirando la sabiduría para que puedas tenerla en el fondo de tu mente cuando estás pasando por una experiencia. Entonces esas son las variables con las que queremos trabajar para este ejercicio. Saber lo que quería hacer es pedir al usuario que ingrese cada uno de estos, y luego quería almacenarlo en las variables. Empecemos con nombre porque ya lo hemos hecho antes. Así que fui a ver consola dot escribir línea. Y voy a decir Por favor, introduzca su nombre. Voy a hacer consola dot write. Quería hablar para imprimir en una línea y luego se va a hacer una pausa para entrada después, punto y coma. Y entonces voy a ver que el nombre completo va a ser igual a lo que sean las entradas del usuario, que sería consola dot read line. Entonces recuerda que la última vez que miramos el hecho de que solo hay que asignarlo ahí. No. No mencioné que pudieras definir una variable aquí y hacer todo una vez. Para propósitos de legibilidad, a veces es bueno simplemente obtener todas tus variables definidas arriba y luego las usas más adelante. Entonces al menos sabes lo que necesitas. Entonces puedes escribir código nuestro propio lo que ya has trabajado viejo. No es necesariamente uno es mejor que el otro. Es solo, solo estoy sugiriendo este tipo de flujo de trabajo para que puedas poner tu mente en orden y tener lista tu estrategia para tu aplicación para cuando la necesites. En esta sección, solo estoy solicitando al usuario la entrada. Sabe, voy a básicamente sólo copiar y pegar esto y voy a decir por favor ingrese su edad. A veces hay que trabajar más inteligente, no más duro. Ya tienes la consola dot write line. Sabes que necesitas asignar la variable que voy a hacer es copiar y pegar. Se necesita su fin para cambiar y luego utilizar la variable apropiada. Entonces aquí estoy diciendo que dame la edad. Wow, no hay promedio. ¿ Qué es esta cosa de la línea roja? Dice que representa lo siento, déjame pasar el puntero sobre esto otra vez. De acuerdo, entonces a veces cuando pasas el cursor sobre él, no vas a ver el error. Oh querida, se hace al final. No se puede convertir implícitamente cadena de tipo a int. Así que por favor puede ir a ver los detalles del error sería lista de errores, que generalmente se hace en la parte inferior de su interfaz no puede convertir implícitamente cadena a int. Y si no lo ves ahí, siempre puedes ir a ver. Y verás lista de errores y haces clic en ella y aparecerá. Aquí. Está diciendo que tengo un entero llamado edad. Pero la línea de lectura de puntos de consola en realidad está aceptando una cadena del usuario, lo que significa que no importa lo que escriba a través de la consola, siempre la verá como una cadena. Así que recuerda antes cuando hablé de los diferentes tipos de datos, había dicho que la cadena en realidad es capaz de almacenar palabras, números, caracteres especiales, cualquier cosa, cualquier cosa que está en tu teclado realmente va a ser procesado como sólo un gran bloque de texto. Cuando lo ponemos en la entrada de la consola, no es suponer que porque pones el numeral, que quieres un entero r, pones una letra que quieres un personaje, o premio de años de edad realmente significaba un Boolean. Siempre estará asumiendo que está entrando una cadena. Entonces si quieres que esta cadena se almacene como algo más, tenemos que hacer una conversión manual. Para convertir de cadena a int. Tienes la opción de usar convertidos, que es solo otra clase incorporada. Y puedo decir convertir puntos. Y puedo ver dos en 32. Quería convertir en 32. Este es un método, así que tengo que abrir mi paréntesis y luego notar que está viendo después de analizar ese valor de cadena que pretendo convertir, qué estoy convirtiendo esa entrada de cadena del usuario. Cuando acabamos de decir convertir a en 32, sea cual sea la entrada vino del usuario. Y entonces cada vez que abro un breve así r bar y el SCC, necesito asegurarme de que lo cierro. Entonces éste, éste es de pérdida de final abierto para, para la línea roja, pero necesito cerrar el 32. Ahí vamos. Eso se deshace de todas las flechas. Espero que eso fuera claro. Si no estaba claro, se duplicó para quedar mucho más claro. Ahora pasamos al salario. Así que sólo estoy copiando y pegando de nuevo. Y entonces quise decir Por favor ingrese su apio. Entonces voy a estar asignando salario. Esto está convirtiendo a 32. No necesariamente quiero 32 en salario porque el salario es un doble. No es un entero. Por lo que no quiero que la persona ponga que hicieron $210.05. No quiero sólo 210 dólares. Quiero que los cinco séptimos también digan que necesito el lugar decimal. Bueno, ¿adivina qué? Puedo convertir de cadena a duplicar nuestros dos decimales, estamos usando doble, Así que voy a decir al doble. Ahí vamos. Muy bien, por lo que la entrada de cadena del usuario, conviértela a doble almacenamiento en lugar de salario. Vienen muy bien. Sólo voy a seguir adelante y duplicar estas líneas por género y trabajar y podemos resolverlas. Género estos en el género. Y luego por favor ingrese si está trabajando o no. Observe nuevamente las líneas rojas. Éste dice Género. Éste dice trabajar. Déjame verlo. Estado de trabajo. Permítanme replantear eso. ¿ Estás trabajando? ¿ Estás trabajando? Muy bien. Entonces, agender, estamos usando un char. Sé que necesita decirle al usuario watts entradas legítimas hora o cuáles son las entradas que estoy buscando. Por lo que voy a ver en el interior del mensaje rápido M o F, introduzca cualquiera de esas letras. Después subió a convertir la cadena en carácter. Da la vuelta sobre el carácter es diferente de una cadena porque esto puede tener múltiples caracteres en su bloque contiguo versus un char, que es literalmente solo un personaje a la vez. Así que me fui a ver convertidos, Dots, herramienta. Y luego hago una pausa en esa cadena entradas que ojalá solo tenga una de las opciones que he presentado. Y luego guardaré eso en género. De igual forma, ¿estás trabajando? ¿ En qué espero que el usuario ponga dos? Espero que pongan en verdadero o falso. ¿Por qué? Porque solo quería agregar conversión directa de la palabra true al tipo de datos real. Eso es un bool, que es la palabra clave true. Por nuestra representación visual. Verdadero entre comillas. Eso es lo que viene a través la consola dot read line. Pero necesito verdad. La palabra clave, que es lo que diría hasta Boolean. Vamos a hacer con esa herramienta de conversión. Boolean. Estoy seguro de que Visual Studio te está dando algunas buenas sugerencias porque es contextualmente mirando a qué estás tratando de asignar este valor. Por lo que les sugeriría, porque claramente estás trabajando con un booleano. Esto es por incitar a nuestro usuario y para detrás de escena convertir cualquiera que sea el tipo de la cadena predeterminada en el tipo de datos real que necesitamos para nuestros procesos en segundo plano. Usar el tipo de datos correcto es muy importante porque. Si lo necesitas para hacer matemáticas con salario, no puedes hacer ese tipo de matemáticas con una cadena. Tienes que tenerlo como valor numérico para ver si esto es lo que ganas al mes, entonces este es tu oído, el salario, ¿verdad? Entonces si les pedimos que ingresen tu salario anual, quería mostrarles lo que ganan al mes tendría que conseguirlo como número para poder hacer las matemáticas. ¿ Está bien? Entonces esas son las cosas que hay que considerar. Al final de esto, queremos imprimir la información de nuevo al usuario. Entonces queríamos imprimir esto es lo que entraste, esto es lo que tenemos para ti. Así que sólo voy a ver consola dot escribir línea. Sabemos que tenemos que hacer eso. No, en este punto, puedo hacer lo que llamaremos concatenación. Entonces fui a ver tu nombre, es. Tengo dos opciones. No puedo ver tu nombre es y luego tener otra consola dot write line fueron impresas nombre completo. Esto es lo que hicimos la última vez. Entonces eso va a terminar duplicándose en cada declaración impresa cuando pueda hacerlo en una línea. Entonces tu nombre es, y luego voy a hacer lo que llamaremos concatenación. Entonces voy a decir plus y luego darle la variable. Qué hace esto. Dice, por favor agregue este bloque de cadena. Esto es un literal porque yo, el programador mecanografiado es así que esto nunca va a cambiar. Además de lo que vino a través de la variable porque no sé en qué va a estar escribiendo el usuario. Eso es lo que estamos haciendo allí. Otra forma de escribir esto o de hacer este tipo de concatenación, digamos con EJW, si quisiera ver tu ij está bien, en realidad puedo poner aquí un placeholder. Entonces fui a ver corsé rizado abierto 0, cierre corsé rizado. Y entonces voy a poner en la variable que coincide. Para que pueda ver que cada uno sepa lo que está haciendo esto es que en realidad está creando lo que llamamos args. Entonces nuestros argumentos que se pasarán a la función. Por lo que los argumentos serán deshuesados a las variables que entran en verle orden. Entonces si tuviera múltiples argumentos son múltiples variables que necesitaban imprimir, en realidad podría simplemente hacer 12. Y entonces puedo ver algún texto aquí porque estoy escribiendo con toda una frase, pero partes de ella necesitan ser dinámicas. No lo hice por cada uno de estos, voy a llamarlos placeholders. Yo proporcionaría una variable en el mismo orden. 0 siempre va primero. La primera variable coincide con el 0. La segunda variable, mucho sigue siendo la otra, etcétera, etcétera. Muy bien, así que acabaré de enumerar tantas variables como tenga marcador de posición. Así que eso son algunos otros. Voy a mantener este sencillo. Y solo vamos a ver que tu edad es entonces estamos usando marcador de posición e imprimiendo cada uno. Otra forma de imprimir lo que llamamos cadena concatenar sería ver tu salario es. Y entonces pondría aquí la variable. En lugar de ver por favor titular, vería corsé rizado y luego pondría las variables, por lo que el apio, pero nota que todo sigue siendo Naranja ya en el mismo color que sea tu representación literal de cadena es. Lo que falta aquí es el signo del dólar. Necesito un signo de dólar antes de escribir la cuerda. Entonces eso me permite usar llaves rizadas y super imponer la variable en cualquier lugar de esa corriente que quiero. A esto se le llama interpolación. Entonces esto es concatenación. A esto se le llama correa inter pull on. El asunto con la interpolación aunque es que dentro de esta cadena es muy similar a usar los args. Pero en realidad puedo simplemente sprint las variables donde diremos si escribo algo toma, no lo hice, quería otra variable y luego más texto. Así que solo estoy escribiendo todo a una cuerda de guantes de bloque, pero en cualquier lugar lo necesito para que sea dinámico, solo escribo en esa variable en consecuencia. Imprime esa cuerda. Simplemente pondrá esos valores dondequiera que expusiera las variables deberían estar. Muy bien. Estoy dejando un pequeño comentario. Ellos son conscientes de lo que está sucediendo en cada punto. Entonces estas son todas tus opciones a la hora de imprimir e interactuar con una cadena sobre las variables. C-sharp hace un buen trabajo de cambiar todo a cuerdas. Entonces hay que ser deliberado para cambiar estos en cualquier tipo de datos porque va de cadena, que ser deliberado con el tipo de datos que estás convirtiendo la herramienta. No obstante, notarías que no estoy convirtiendo nada más en cadena aquí. Esta es una cuerda y estoy poniendo en un doble dentro de un bloque de cuerda. Lo mismo aquí con edge will full name ya es una cadena. Entonces aquí siempre convertirá cualquier tipo de datos que sea en cadena sin que tengas que hacer nada más. Pero si fuera necesario, siempre se podría decir punto variable toString, que también lo convertirá en cadenas. Entonces eso funciona, pero eso es algo redundante porque no es necesario. Porque C-sharp es así de azul. Sólo te estoy mostrando tus opciones. Así que déjame simplemente duplicar esto y ver que tu género es, y luego solo puedo poner en género. Entonces puedo ver que eres Floyd ¿Estás empleado o estás empleado? Lo siento, sólo estoy quedando atrapado en altar escribir esto, usted está empleado y luego sólo voy a ver trabajar. Muy bien, por lo que automáticamente lo convertirá de cadena Bool para mí. Muchas de las veces me verás haciendo esto, pero más tarde veremos la manipulación de cuerdas con un poco más de detalles. Así que solo te estoy mostrando algunas opciones aquí para que podamos superar esta actividad. Y más adelante profundizaremos más en lo que es posible cuando se trata cadenas y diferentes tipos de datos. A partir de aquí, si quisiera ejecutar esta aplicación, una vez más, tengo que cambiarla a ese proyecto con el que estamos trabajando, variables y tipos de datos. Y luego déjame ejecutar. Entonces empecemos a llenar esto. Entonces este va a ser nombre de prueba. Entra en el borde del oído, digamos 23. ¿ Cuál es tu salario? Eso es un C. Estoy ganando ese 0.35. ¿ Cuál es mi género? Fui a señalar los que me sugirieron que me quedaran. Entonces en mi trabajo estoy trabajando verdad. Entonces al final de la misma, estás recibiendo tu nombre, tu edad, tu salario, tu género, y estás empleado. No hay aviso que aquí no hay espacio. ¿ Por qué no hay espacio ahí? Porque tengo un dipolo ya solo puedes arreglar ese error tipográfico y eso arreglaría esa impresión. Pero eso es realmente todo lo que quiero que pasemos en este ejercicio. Miramos las diferentes variables, a diferentes tipos de variables y todo el fin de semana les damos los valores predeterminados frente a los valores no predeterminados. También nos fijamos en el hecho de que podemos o necesitamos hacerlo, al aceptar entrada de la consola convierte a nuestro tipo de datos específico basado en lo que necesitamos. Y también miramos las diferentes formas en que podemos manejar impresión de texto estático antiguo combinado con Takes viniendo de nuestra variable. 11. Técnicas de depuración de aplicaciones: Muy bien chicos, así que en esta lección quiero discutir técnicas de depuración de aplicaciones. No, la depuración tiene que ver con encontrar errores en tu código. En este punto, tengo un montón de otros proyectos que vamos a pasar uno por uno más adelante. Así que no te dejes atrapar por la diversión que tengo muchos proyectos y no nos dejas enfocarnos en el proyecto que acabamos de completar, que estaba mirando variables y tipos de datos. Y quería mostrarte cómo puedes intentar encontrar errores en el código a medida que avanzamos. Muy bien, entonces tenemos diferentes tipos de errores que aparecerán en nuestro código. El más fácil de detectar es un error de sintaxis. Error de sintaxis podría ser tan fácil un tipo o habrías visto que escribieron algunas líneas equivocadas. A veces, si escribía consola en lugar de consola, entonces el error de sintaxis sería evidente a través de la prisión misma, la línea roja, lo hemos visto antes. También notarás que Visual Studio destacaría como que el león a tu derecha. Y verás ese pequeño cuadrado rojo de aquí arriba mostrando que hay un error en esa línea. También verías que tienes esa pequeña x aquí abajo y se poblará lista de errores. Entonces hay tantos indicadores en cuanto a la idea de un error en tu código cuando se trata de un error de sintaxis que es difícil no notar. Ahora digamos una aventura de oración. No lo notaste. Y trataste de ejecutar a alguien para cambiar mi proyecto inicial aquí. Entonces traté de ejecutar esto. No me di cuenta de que ese error de sintaxis y traté de ejecutarme, entonces voy a terminar con un error como este. Entonces cuando corras, tendrás dos opciones. Has corrido con depuración y ejecutas sin depurar. Correr sin depuración significa que solo va a construir, asegúrate de que todo esté bien. Y luego trató de lanzar un programa escrito con el juego de pelota significa que va a correr, pero ten en cuenta que tal vez quieras rastrear lo que está sucediendo. Entonces lo miramos en unos pocos. No obstante, ninguna opción funcionará cuando, si tienes un error de sintaxis. Entonces cuando recibes ese tipo de mensaje de error diciendo que hubo un error con tu compilación. ¿ Quieres continuar con la última construcción exitosa? No quieres continuar con la última construcción exitosa. Significa que vas a volver a la buena versión del código, lo que derrotaría el propósito de escribir nuevo código que eres capaz de probar. Quieres ver NOR. Y luego quiso darle algo de atención a tu lista de errores para que pueda mostrarte dónde están tus errores. Por lo que con solo hacer doble clic aquí en la zona de la ciudad en realidad saltará a esa línea con los errores. Ya sea que vayas a arreglarlo, comentado o lo que sea que vayas a hacer, basta con eliminar los errores de sintaxis. Entonces esos son los errores más fáciles de detectar. Conocer el tipo de error más difícil de detectar es un error lógico. En el error lógico puede ser porque no escribiste la coordenada particular forma en que hiciste algo antes de que debiera haber hecho otra cosa. Recuerda que tenemos secuencia, tenemos su posición y luego tenemos decisiones. Si eres una secuencia era incorrecta, entonces es posible que no consigas los resultados deseados. Si tomaste una mala decisión, lo que significa que escribiste una condición de declaración incorrectamente, entonces puedes obtener unos malos resultados ahí también tu for-loop, etcétera Hay una serie de cosas que pueden tirar toda la lógica. Esos son errores lógicos que realmente se manifiestan durante el tiempo de ejecución. Una de las formas en que se puede utilizar los valores de camiones que se están asignando es sentados en lo que llamamos puntos de interrupción. Punto de interrupción es digamos una línea de código marcador que le dice al compilador que mientras estás ejecutando todo el código, cuando golpeas esta línea, quiero que te pongas en pausa. Deja que dot-dot-dot se registre un poco para conseguir ese punto de ruptura. Si miras a la izquierda de los números de línea, por lo que tienes el editor, entonces tienes tus números de línea, que al hacer clic resalta las líneas enteras me verás haciendo Eso es mucho. Para simplemente obtener todo el forro acaba de hacer clic en ese número de línea. Pero a la izquierda más alejada verás que el cursor vuelve a invertir. Entonces aquí ocurre, por lo que se ve normal, solo un puntero regular. Y luego cuando voy a los números de línea, se convierte en una especie de apuntando invertida a la siguiente dirección, y luego vuelve a la normalidad por aquí. Y luego verás que esos pequeños puntos blancos aparecen en las líneas de código. Al hacer clic en donde está ese punto aquí arriba, se pone rojo. El punto rojo significa un punto de interrupción y esa línea entera se vuelve roja. Para que puedas tener múltiples puntos de ruptura. Lánzalo a tu código. El activar los puntos de rotura, solo hace clic de nuevo en él. Haga clic para activar o desactivar. Cuando estás corriendo. En el modo de depuración, lo que significa que presionas este botón de reproducción más grande o presionas F5 en tu teclado, se ejecutará. Y ten en cuenta el hecho de que podría haber un punto de ruptura. Entonces cuando golpee ese punto de ruptura se va a hacer una pausa. Cuando se pausa te permite interactuar con las variables y otros bits de código que lo habrían precedido. Si se ejecuta sin depurar, entonces simplemente se ejecutará. No será curable en los puntos breves. Corremos con depuración y miremos esa experiencia. Aquí lo ves. Viendo entrar nombre para que sepamos lo que estamos en el 912, ahí es donde está esperando debajo para entrar. Fui a poner a mi nombre, pulse Enter. Entonces pasa y pregunta qué comen para que sepas qué es eso? Sin esbozo. 15. Está esperando en el borde. Entonces poniendo una ventaja y luego mira eso. Por lo que imprimió el prompt para una línea 17. cuerpo no puede ir más lejos por el punto de ruptura que habíamos puesto esa línea 18. Saber que la obligación se detiene en realidad no importa lo que haga, en realidad estoy presionando las teclas son, y no importa lo que haga, sigo adelante porque el compilador no me permitirá. De acuerdo, en este punto, si pongo el cursor sobre estas variables anteriores, en realidad puedo ver qué valores entraron y puedo ver que el nombre completo actualmente tiene un valor de Truvada. La edad de William actualmente tiene un valor de 25 y está esperando en el salario para obtener su valor. Y el salario actualmente tiene un valor de 0. género tiene el valor de 0 slash 0. Ese fue el valor medio. Y trabajar por defecto tiene un valor de false. ¿ Ves eso? sólo pasar el puntero sobre ellos, puedo ver eso. También puedo bajar aquí donde algunas de las barras de herramientas adicionales están algunas de las barras de herramientas adicionalesy puedo traerlas. Voy a ver, mirar, eso es minúsculo. El apartado de reloj me permite poner en un segundo variable y ver la variable de género. Y me estaba mostrando cuál es su valor. Puedo ver nombre completo. Y me estaba mostrando cuál es su valor. Y también puedo ver los salarios. Así que déjame ver salario. Ningún salario tiene un valor de 0. Pero si presiono F9 en mi teclado o si vives adentro, y tengo que asegurarme de presionar F 11 porque f diez en realidad parará la grabación para mí, la diferencia entre f diez y si vivimos, es que si diez vamos a saltar por encima de un método, mientras que FLM te traerá en el método. Más tarde cuando estemos escribiendo código juntos, veremos que funciona. Pero por nulo, si diez o 11 está bien. Entonces si presiono F 11, se moverá desde ese punto de ruptura. Y todos los números, estos son todos los números que estaba poniendo antes. Pero no, en realidad está en la línea 18 esperándome para que entre algo y presione Enter. Entonces si pongo 800, déjame borrar esto y solo pongo número sensible y luego presione enter. Pasará a la siguiente línea. Por lo que se ve cuando llega a la línea, cambia a amarillo. Cuando golpeó el punto de interrupción, era de color amarillo cuando se trasladó a la siguiente línea. No me está mostrando ¿Así es la siguiente línea? Correcto. Si voy al reloj a ver su nariz mostrándome que el salario ya no es 0, no son 8 mil porque eso es lo que entré . En este punto. Tengo algunas opciones porque todavía me está esperando ir línea por línea para que pueda seguir haciendo F11 o f1 hasta el final. Lo que quiero decir para un pequeño programa como este no sería gran cosa. Pero a veces realmente solo querías devaluar lo que sucede en una línea en particular. Después de esa línea en particular, puedes dejarla continuar. Para dejarlo continuar. Simplemente presiona F5 o haz clic en Continuar arriba arriba. Y una vez que hagas eso, solo continuará con la ejecución del código como de costumbre. Entonces aquí puedo poner en m y ves que no es pausar y pedirme nada y sigue hasta el final de la ejecución. Una vez más, estos puntos de interrupción me permiten pausar la aplicación en sus camiones. Y puedo echar un vistazo a las variables puede ser lo que se estaba estableciendo era incorrecto, tal vez el valor salarial fue incorrecto porque el cálculo está mal. Esto te ayuda a pausar tu aplicación y echar un vistazo a los valores que se están encontrando. Y entonces puedes determinar eso, vale, tal vez necesito twittear esto o modificarlo a medida que avanza. Y luego te ayuda a avanzar. Aquí con apio, acabo de desactivar los puntos de control están en el punto de interrupción más bien haciendo clic en el punto rojo y haciendo clic en él. No se puede tener múltiplo. El punto es que cada vez que golpees Continuar, irá tan lejos como el siguiente punto de interrupción en la línea en ese orden. Entonces si entro el salario y se fue aquí y en ese presionado continuar cuando imparte la línea 20, continuaría, continuaría, continuaría. Y entonces haría todo hasta el siguiente punto de descanso donde se detiene y me espera, el desarrollador o bien evaluar lo que está pasando y luego continuar o ir línea por línea. Entonces esa es alguna orientación en cuanto a la depuración en tu aplicación. Esto será útil. Cuando terminas con errores. A lo mejor tu lógica no está tan bien pensada en ella como te gustaría y eso pasa, todos somos humanos, ¿verdad? A veces no lo haces bien la primera vez. Por eso existen estas herramientas para ayudarnos a refinar lo que estamos haciendo. 12. Operadores de aritméticos y asignación: En esta lección, vamos a estar mirando a los operadores de matemáticas, vamos a crear un nuevo proyecto. Y vamos a llamar a este operador matemático usando dotnet six. Y entonces podemos empezar este show. No. Queremos mirar tal vez tres categorías. Contamos con operadores básicos, somos operador de asignación básica. Más bien, tenemos operadores aritméticos, operaciones. Entonces tenemos tal vez operadores de asignación compuestos. Miramos antes al operador de asignación. Éste tiene que ver con asignar un valor int num, tenemos una variable. Genial. Quiero darle un valor. Voy a decir que num es igual a tal vez cinco. eso se le llama asignación. En inglés regular o matemática irregular, un ser humano, cuando ves el signo igual, significa que lo que esté a la izquierda tiene el mismo valor que lo que esté a la derecha. No obstante, en la programación, cuando ves uno igual a signo, significa que lo que esté a la derecha se está asignando a lo que está de la izquierda. Entonces esta es nuestra variable. Estamos asignando el número cinco a la variable. Eso significa que lo inverso no será cierto si escribo esto en código, solo voy a obtener un error porque no hay manera. Estoy viendo que estos dos son equivalentes. En inglés regular o lenguaje humano regular. Eso probablemente sería aceptable, pero no en programación. Ya explorado entero, asignamos valores, nuestras variables. Y si queríamos hacerlo en una línea, fácilmente podemos decir que int num es igual a ese valor. Por defecto, una vez que se crea la variable, se crea con ese valor. Ahora veamos las operaciones aritméticas. Las operaciones aritméticas tendrían que ver con nosotros haciendo matemáticas. Voy a hacer norm1, darle un valor de algo aleatorio 11 y num2, vamos a darle un valor de 12. Gracias. Visual Studio. Ya ves aquí, es sólo un regalo que sigue dando. No obstante, eso no es lo que quiero esta vez. Cuando queríamos hacer matemáticas, tenemos la oportunidad de hacer el mismo tipo de matemáticas a las que estamos acostumbrados en nuestra vida diaria regular, ¿verdad? Entonces si quería hacer adición, recuerda que dije que se pueden hacer diferentes operaciones. Podemos agregar fácilmente num1 más num2. Matemáticas simples. Si le pregunto a alguien si escribí un programa para calcular y esa es una actividad agradable para ti. Escriba una aplicación que acepte dos números y realice suma. Les pedirías que entraran en num uno y lo conviertan en num2. Y entonces verías num1 más num2. Entonces proprio tiene otra variable, int sum es igual a num más num1 más num2. ¿ Matemáticas es así de simple? Así que sólo voy a escribirlos dentro de estas console.WriteLine line. Por lo que en realidad las imprimimos de nuevo a la pantalla y líneas de código útiles. Esa es una actividad agradable si quisieras seguir bien, y una calculadora después de esta actividad, entonces esa sería una buena práctica para ti. Escritura de aplicaciones de entrada, salida y procesamiento. Podemos hacer matemáticas, podemos hacer suma, podemos hacer resta. En lugar de un signo más. Tenemos un signo menos. Podemos hacer multiplicación. Así que recuerda que solo estoy duplicando las líneas usando Control D en mi teclado o Control CV. Muy bien, entonces la multiplicación está representada por el asterisco, no por la x. Muy bien, entonces escribimos una x cuando estamos haciendo matemáticas, pero es un asterisco. En la división de programación, no quieres tener un símbolo de división en tu teclado si quisieras. Eso es en Microsoft Word, Eso es un símbolos especiales, así que usamos la slash. Entonces eso es un sentido de división. Norma uno se está dividiendo por herramienta de cúpula. Si queremos hacer módulo, utilizamos el signo de porcentaje. Módulo es básicamente la división o el resto después de división. Entonces vamos a ver. Dos divididos por tres. Dividido por tres te va a dar algo como lo siento, déjame ver. Cinco divididos por dos. Déjame hacer algo más fácil. Cinco divididos por dos se irían, entrarían en dos veces, quedarían uno porque tendría una superinfección. Bueno, obtendrías dos veces más que una, veces de herramienta quedan uno. Muy bien. Ahora, si quisieras ese resto solo uno, entonces dirías cinco módulo dos. Eso regresará apenas el resto. Eso es lo que punto módulo. Entonces si nunca has interactuado con más detalles antes, eso es lo que sí ve si alguna vez llegas a una aplicación donde necesitas encontrar todos los números impares, están poniendo un número y averigua si es extraño, entonces más o menos si el número, digamos que lo siento. Creo que sería una buena actividad para nosotros hacer después de esto. Voy a dejar eso hasta más tarde. Pero si alguna vez tienes que averiguar si algo es un número impar, todo lo que tienes que hacer es hacer el módulo número dos. Y si cualquiera que sea el resultado, es uno, entonces es un número impar, ¿verdad? Eso es todo funciona módulo. Así que vamos, en una puja solo para conducir el punto a casa, voy a modificar el valor de num uno. Núm uno. Tu nuevo valor es la norma uno más cuatro. Muy bien, así que ese soy yo aumentando el valor de num uno. Y entonces si tuviéramos que imprimir todos estos y solo agregaré uno aquí para ver un nuevo valor de num uno es cualquier norma que tenga OneNote. Después entonces verás que estas fueron las respuestas originales. Modificé el valor de la variable y luego obtenemos estos nuevos valores después. Eso es un simple operaciones matemáticas. Entonces tienes diferentes bibliotecas que te permiten hacer operaciones más complejas. Tangente y seno y coseno, etcétera Pero no me estoy metiendo en los de la B6 en este momento. Si ejecuto este programa una vez más cambié el auto arranca o proyecto a operaciones matemáticas son operadores iniciaron el proyecto, solo debería escupir todos estos cálculos. Entonces la pantalla de la consola. Ahí vamos. Por lo que a veces la consola se detendrá. Sólo tienes que hacer click. Si hace clic en él tipo de pausa. Entonces cuando presiones entrar continuará. Entonces aquí tenemos la suma y resta, multiplicación, división y módulo. Ves aquí decía que 12 no podían entrar en 11, ¿ verdad? ¿O qué fue eso? Eso era normal uno vive en dividido por 12, por lo que eso es 0 veces sobre el módulo es 11 causó que el resto sería de 11. Después vamos a nuevo valor de la norma uno es 15, y luego obtenemos la suma, obtenemos la resta entrará en multiplicación. Saber, de 12 a 15 va una vez. Si el resto es de tres, módulo nos da el resto. ¿ Está bien? Eso es realmente todo para operaciones aritméticas básicas. Los operadores de asignación compuesta de nodos serían como una versión acortada de hacer algo como si quisiera modificar el valor de una variable, pero quería agregar o restar del valor original. En este caso, lo aumenté en cuatro. Entonces dije cualquiera que sea el valor de num uno, ¿verdad? No, devuélveme y sume cuatro y luego asigne ese nuevo valor. Normalmente eso está instalado, lo aumentaría. Si quisiera disminuirlo, simplemente haría lo mismo con un signo menos, etcétera Si quisiera hacerlo cuatro veces su valor original, diría multiplicar. Ahora cuando hablamos de asignaciones de componentes, sería una versión acortada de hacer este tipo de operación. Entonces si quisiera ver aumento num uno por cuatro, puedo ver norma uno más igual. Entonces dale el valor. Por lo que esto no vería acumularse. Entonces tenemos esto, esto se llama acumulador. Norma. Uno aumenta en cuatro. Eso es más o menos lo mismo que escribir lo que hicimos arriba aquí. Sólo vendré en adultos. Misma dinámica. ¿ Está bien? Y luego con base en lo que quieras hacer, como dije, si quisieras disminuir en cuatro, será verlo. Digo num uno menos cuatro. Si quisieras multiplicarlo, hazlo cuatro veces su original válido. Y serán tiempos. Si quisieras hacerlo cuatro veces menos que su valor original, entonces será dividida, etcétera Entonces cuando hablamos de operaciones compuestas, eso es lo que estamos haciendo. Operaciones de asignación compuesta. El caso es que con cada una de estas operaciones, en realidad estamos cambiando el valor de num uno. Entonces no se trata de simplemente imprimir, este es el resultado de la operación, en realidad está cambiando. Entonces aquí estoy viendo extraño para mí recordar qué secuencia. Entonces num uno comienza como 11. Pasamos por todo esto o el sprinting, todo el resultado de la operación. No estamos asignando nada. No estamos haciendo nuevas variables están asignando ningún valor a ninguna variable, entonces veo aumento normal uno por cuatro conocer que el nuevo valor, num uno en este punto ya no está viviendo, ahora es 15. Entonces todas estas operaciones matemáticas son relativas a una normal siendo 15 y num2 sigue siendo sólo 12, razón por la cual vimos los diferentes conjuntos de resultados en este punto normales y sigue siendo 15. Cuando digo plus es igual a cuatro, no tengo aumentarlo desde 1519 causas en este punto ya son 15, por lo que estoy sumando cuatro a 15. Y entonces aquí voy a decir que regresen 15, justo aquí. Fui a ver si 15 veces cuatro es igual a 60. Saber que nadie tiene un valor de 60. Y entonces aquí voy a decir dividido por cuatro, lo voy a volver a poner a 15. Y luego voy a decir módulo cuatro. Entonces eso significa 15. Módulo cuatro sería si mi matemática me sirve a la derecha tres. Entonces lo que vamos a hacer, sólo para probar si mi matemática sigue en punto. Voy a hacer nuestra consola dot write line. Y voy a estar imprimiendo el valor de num uno con cada operación. Entonces podemos comparar para ver si mi boca que tengo en los comentarios habría correcto. Muy bien, volvamos a ejecutar esta aplicación. Muy bien, entonces ahora es tu momento de marcar mi tarea matemática. Entonces sí dije que el primero a Ockham será 19. Ahí vamos. El segundo a o con sería 15, luego 60, luego volver a 50, y luego el módulo sería tres. Entonces no, cada vez estamos cambiando el valor de num uno. Eso es todo suyo, puedes seguir adelante y modificar variables. Si dije aumentar algo, aumentaron todos los precios en cinco, entonces ya sabes, solo puedes ver los tiempos de precio z igual a cinco. Eso lo haría automáticamente. 13. Declaraciones condicionales: Muy bien chicos, En esta lección vamos a estar mirando declaraciones condicionales. Ya he creado ese proyecto. Por ahora. Deberías estar familiarizado con cómo crear un proyecto. solo puedas seguir adelante, golpear pausa y seguir adelante y crear ese proyecto. Cuando hayas hecho eso, continuaremos y estamos viendo declaraciones condicionales. Una vez más, con declaraciones condicionales, se trata de tomar una decisión. Ya discutimos que tenemos secuencia, tenemos decisiones, sin embargo, repetición. Por lo que parecen las decisiones sobre declaraciones condicionales. Por lo que tenemos básicamente tres formas principales de tomar decisiones en la mayoría de los idiomas de nivel superior. Entonces cuando digo lenguajes de alto nivel, me refiero a C-Sharp, Java, C , C plus plus, y lenguajes como Python, Ruby, etc. Así que tenemos declaraciones if , tenemos sentencias switch, entonces tenemos Turner operadores. La sintaxis fuera de curso diferiría, pero en términos generales, las declaraciones, las sentencias switch, y los operadores ternarios. Todos se ven de la misma manera. la misma manera realmente en CC plus más C-Sharp Java. Pueden tener interpretaciones ligeramente diferentes en Ruby y Python en ciertos otros idiomas. Pero una vez que entiendas la idea general, adoptar a otro idioma es realmente solo una búsqueda en Google de distancia. A pesar de que estoy haciendo un curso de C-sharp, solo quería llevarte a los puntos de realización de una vez. Usted aprecia estos conceptos dentro de c-sharp, se pueden aplicar a cualquier otro idioma como usted pueda necesitar. Si las declaraciones generalmente hacen uso de lo que llamamos operadores condicionales. Por lo que acabamos de mirar a los operadores aritméticos y de asignación. Miramos a los operadores condicionales. Operador condicional que hemos visto uno antes, está en forma de un signo de w igual. Eso significa equivalentes. Entonces como dije, el, el signo igual único no significa que los dos lados sean iguales. Significa que estoy asignando lo que está bajo la derecha a lo que hay a la izquierda. No obstante, cuando vemos el signo doble iguala, significa que lo que esté a la izquierda es equivalente a lo que está suscrito. Eso es un operador de equivalencia. También tienen menos que, tenemos mayor que. A veces me meto a los mezclados, así que sólo trabaja conmigo. Tenemos menos que un igual a. Tenemos mayor que e igual a. No tenemos igual a, que no sería el símbolo de signo igual. Esos son generalmente los operadores. Y una vez más, esos están en la mayoría de los idiomas que había enumerado anteriormente. Entonces, una vez que entiendas cómo utilizarlas, puedes aplicarlas en casi cualquier otro lugar. Entonces comencemos con un programa sencillo para ver cómo funciona esto. Voy a decir int num. Solo voy a pedirle entrada al usuario. Así que sólo voy a decir consola dot, escribir línea, enter, primer número. Y luego solo vemos int num es igual a conversos. Y sólo voy a escribir todo afilado porque sabemos lo que estamos haciendo. Y es incluso Visual Studio me está ayudando. Entonces mientras que ver en tu primer número. Y luego nos vamos a convertir a en 32, lo que venga a la consola. Y nos falta un punto y coma en esa línea, razón por la que tenía ahí esa línea roja. Muy bien, déjame ver. Visual Studio va a tener que volver a tener que hacerlo. No, esa no es la cadera que esperaba para nosotros. Así que déjame sólo copiar esta línea. Fui a llamar a este num uno. No quiero llamar a esto num2. Y sólo voy a decir Ingresa tu segundo número. Estamos pidiendo al usuario un número de herramienta. Ahora, veamos algunas declaraciones condicionales que serían sensatas. Entonces, ¿y si quisiera saber si entumecido uno es mayor que num herramienta? Empezaría y diría si cuál es una palabra clave. Pero ten en cuenta que no es una declaración porque no necesito un punto y coma al final. Entonces voy a decir que está sugiriendo que num uno es equivalente a la norma a lo que aún no estoy ahí. Por lo que quería ver si la normal es mayor que num2. Después fui a poner en marcha un bloque de código. ¿ Qué me gustaría hacer? A lo mejor me gustaría ver la consola dot leer la línea. Tienes, ya sabes, déjame, déjame hacer esto un poco más contexto o entrar número de manzanas. Num uno representa subidas. Yo no lo hice. Aquí hay un ejemplo de mí violando mi propia regla. Num uno no me dice que esto está almacenando hacia arriba normal uno aquí dice el número uno, lo que estoy pidiendo subidas. Entonces hay una desconexión aquí, así que es mejor, lo llamaría número de manzanas. Entonces está claro. Ahora cuando nombre de renombrar una variable y tengo que renombrarla en varios lugares. Por supuesto, solo puedo pasar y copiar y pegar o simplemente puedo hacer Control y puntos. Y luego verás la opción Renombrar. Del nombre antiguo al nuevo nombre. Cuando haga clic en eso, solo pasará y refactoriza todas las partes para mí. Ese es un buen consejo de productividad para ti. Quiero número de manzanas, número de naranjas. Fui a llamar a este número de naranjas. Y luego fui al mismo punto de control y renombré AHORA número de manzanas, número de naranjas. Si el número de manzanas es mayor que un número de naranjas, entonces fui a ver que tienes más parejas. Genial, agradable y sencillo. Muy bien, esa es una nueva declaración. Pero, ¿qué pasa si tengo algo más que quería comprobar? Porque esto solo está comprobando de una sola vez las condiciones y está tomando una acción, uno a cinco más anaranjado es entonces tengo hacia arriba. Entonces puedo decir otra cosa. Esto sería como si este fuera el caso, entonces hazlo. De lo contrario, haz esto. Voy a decir que tienes más naranjas. Si el número de manzanas es mayor que el número de naranjas, entonces tienes más manzanas, lo contrario tienes más naranjas. Pero eso podría no necesariamente ser el caso porque ¿y si son iguales? Porque bien sé, solo estoy comprobando una condición, ¿de acuerdo? Y explícitamente, solo estoy viendo si el número de manzanas es mayor que esto, entonces esto, eso no es una suposición justa porque podría tener el mismo número de cada lado tendría que introducir más condiciones a este hoyo. Si check, en realidad puedo tener otro constructo llamado L, lo que me permite comprobar si hay otra condición. Puedo ver si este es el caso, eso más, si este es el caso, por lo que número de naranjas es mayor que, número de manzanas. O podría ver menos que, así que uso un mayor que ya. Así que déjame ver. Número apagado. Oponerse es menor que el número de naranjas. Sólo te estoy mostrando cómo usar las declaraciones condicionales. Operadores, LLC. Si el número de manzanas es menor que el número de naranjas, entonces te imprimimos tienes más naranjas. ¿ Y si son iguales? Puedo hacer otro más. Si el número de Subidas es equivalente al número de naranjas, entonces queremos escribir algún código más. Me doy cuenta que no es ilegal que pongas lo demás si en la misma línea que un corsé rizado. Yo soy, tiendo a hablar el modelo porque quiero esa distinción clara ya la rara comienza en una parada. Pero no es el LIGO escribir tu código así. Else-si ese es el caso, entonces voy a consolarlo. Tienes el déjame sólo ver el mismo número de manzanas y naranjas. Eso fue a lo que fui a imprimir a la consola. Es una gran decisión. Para que veas puedes tener una decisión sencilla. Se pueden tener decisiones complejas que tomar en base a dos variables diferentes y cosas diferentes que se están arrojando a dos consideraciones diferentes y realmente disfrutarlo. Eso son todas las grandes obligaciones. ¿ Hay declaraciones? Si haces esto, entonces obtienes ese resultado. Eso es todo lo que son. Ahora quiere toda una empresa creada la aplicación puede parecer toda hermosa interfaz de usuario es y qué tan alto se ve ticket. Al final del día, todo se reduce a un montón de declaraciones if. Si presionas este botón, ¿qué hago? Si pones en este valor, ¿qué hago? Eso es todo lo que es. ¿ Está bien? Entonces al final de todo esto, si ninguna de estas condiciones es verdadera, entonces finalmente se puede hacer una declaración más grande que vería entrada no válida o no podría calcular nuestra acción directa. No quieres algo así. Cuando los consigues, cuando pones un cierto volumen y una aplicación, me sale algo para decir que es un valor inválido. Significa que todas las declaraciones if que fueron escritas no contaron por lo que en realidad terminaste poniendo, se sentará otra cosa. No sé qué hacer. No puedo no te puedo ayudar. Muy bien. ¿ Qué hay en esta situación? Probablemente no necesitamos ir tan lejos, así que sólo voy a eliminarlo todos modos porque creo que estamos cubriendo todos los posibles resultados basados en lo que estamos pidiendo aquí. El número o va a ser mayor o menor o equivalente. Concedido, se podría poner en todos los que creé una r igual o menor que un igual, etcétera Pero no vamos a entrar en todos esos. Solo debes saber que esas son opciones. Y obviamente, si no es igual. Entonces va a ser mayor que r, menos que eso. Para que puedas tomar decisiones cuando estés en el código que puedes tomar una decisión en cuanto a qué tipo de decisión. Nuestra lógica condicional que necesitas poner para que coincida con la situación con la que estás lidiando. Puedes seguir adelante y probarlo si quieres. Puedes poner en el mismo número, puedes poner en dos números diferentes. Y en base a los números que pones, asegúrate de que la declaración condicional esté corriendo lo que estás esperando. Voy a pasar a cambiar de declaraciones. Puedes golpear Pausa, seguir adelante y probar y experimentar, pero estoy pasando a cambiar de declaración. Entonces veamos que tenemos, um, necesitamos evaluar vatios está en una variable, y luego en base a lo que está en la variable, necesitamos tomar oxígeno. ¿ Está bien? Entonces te voy a dar otro ejemplo que creo que es práctico. Voy a pedir acordado. Muy bien. Fui a ver entrar nota final y vamos a determinar si pasaste o no. Alguien a ver integrar es igual a lo que se pasa por la consola. Así que una sentencia switch literalmente comienza con el interruptor de palabra clave. Después ponemos en la variable que vamos a estar evaluando grado. Esto no se limita a enteros. Esto puede ser con cuerdas, puede ser con carga, puede ser con cualquier cosa. Porque incluso cuando estamos aceptando el formulario y dijimos MRF, podría haber puesto fácilmente en una declaración de interruptor R&D si declaración para ver si m entonces imprimir comida, si F entonces imprimir hembra o cambiar, similar a lo que somos capaces de hacer. Así que solo te estoy mostrando que no se limita a enteros. Sólo estoy haciendo esta habitación. Para que pueda decir algo así como el interruptor, puedo especificar un caso CC o Visual Studio está esperando que me recoja. Y continuo puedo decir caso 0. ¿ Qué quiero hacer? Línea de escritura de punto de consola, fallaste. Mensaje bonito y sencillo. Entonces necesito terminar cada caso con brote. Más o menos eso es todo. Muy bien. Hagas lo que hagas entre ese colon y la palabra clave break es lo que se ejecutará si ese es efectivamente el caso, donde estamos mirando el valor de tu grilla. Grid probablemente no fue un buen ejemplo porque el caso tiene que ser muy específico. Entonces a diferencia de la declaración if donde pude ver así mayor que eso o el scripted y eso es que tengo que ser específico con un valor. Por lo que sólo puedo ver las llaves 0. En ese caso, puedo decir llaves una o lata. Y el ofcourse, cualquier valor que use es relativo a lo que estoy comprobando. Aquí yo diría Console.Writeline, tienes diez marcas. Si el valor es de diez, entonces irá aquí. Si el valor es 0, entonces irá ahí. Pero si no son diez, no es 0 y es una válida que no se contabiliza en los casos, entonces querríamos darte ese incumplimiento. Entonces por defecto significa que esto es lo que voy a hacer cuando todos los demás campos. Muy bien, así que rompe, console.WriteLine, calificaciones inválidas. Entonces si entramos 1 mil I, no pasamos por punto 1 mil dentro de todo esto, entonces simplemente iríamos al default que sería como la declaración por defecto else, la catch-all. No se cumplió ninguna otra condición, por lo que acaba de hacer esto por defecto. Eso es lo que la palabra clave está aquí. Si quisiera nuestro rango dentro de mis declaraciones switch, lo que cumpliría con más sentido aquí, considerando que desengrasado suele estar entre 0 a 60 para el fracaso y luego 6060 a 100 para la pausa. Y entonces el default representaría cualquier cosa fuera de 0 a un 100. Entonces probablemente querrías hacer algo así como llaves, int. Simplemente elige una variable cuando. Entonces puedes ver aquí es, vamos a ver, genial hoy. Lo siento, menor o igual al valor de 60. Muy bien. Este punto que acaba de escalar, ¿verdad? Estoy seguro de que ya entiendes cómo haces claves contra un solo valor. Si querías consultar 102030406998, solo tienes llaves diez, ¿verdad? ¿ Qué quieres escribir? Break, caso 20, etcétera, etcétera. Y seguirías, si quisieras que compartieran el mismo bloque, entonces en realidad solo dirías como claves 101112 y Todos estos casos solo usarían ese bloque de código. Entonces sí, está desbloqueado, pero no hay paréntesis abiertos y cercanos como hay que cambiar. Es sólo el colon. Por lo que todos estos en realidad compartirían lo que suceda aquí antes de ese descanso. Esa es una forma de hacer que diferentes condiciones para diferentes valores compartan lo mismo. Por supuesto, eso será tedioso si estás revisando entre 0 y 60 porque significaría que tienes que tener 60 casos. Son 61 caso es de 0 a 60 para comprobar si no hay fallo. Eso no sería práctico. Lo que te estoy mostrando ahora es cómo puedes hacer como nuestro rango para una serie de valores. Justo aquí voy a ver caso. Y luego int n. Así n es como en la representación en proceso del valor que estamos evaluando. Y luego verás cuando realmente creo que estas llaves son opcionales, si son int n, cuando este n, lo que sea n, sea cual sea ese valor y represente ese valor es menor que o igual a 60, luego imprime, fallaste cualquier valor. Y una vez que es menor o igual a 60, entonces usted campo. Para que ahora pueda comprobar caso int n. Cuando n es mayor que 60. Entonces podemos decir que pasaste. Eso tiene sentido. Entonces 60 es la marca de pase, sientes que son 61 es la contraseña, digamos mayor que o igual a 59. Sí. Muy bien. A ver si es mayor o igual a 59. Menor o igual a 59, lo siento, Eso significa que has fallado. No obstante, si es mayor o igual a 60, entonces se hace una pausa. Por lo que 60 es la marca de pase hacia arriba. No obstante, si pongo suficientes mil, ese no es un valor válido. Por lo que hay otra situación en la que a veces se necesitan múltiples condiciones encendidas para parecer múltiples condiciones arrojadas en la misma decisión. Muy bien, aquí tenemos que usar lo que llamamos el y operador. Y los operadores lo estarían, y también tienen nuestros operadores que serían RR. Entonces eso es, estas son pipas y estas son ampersands. ¿ Está bien? Entonces en cualquier momento que quieras especificar dos o más condiciones dentro de la misma decisión, como para este caso, quería asegurarme de que sea mayor o igual a 60. También es menor o igual a un 100. Por lo que puedo ver cuando n es mayor o igual a 60 es menor o igual a un 100. Yo no lo hice Inglés Estándar. Esto sería como decir entre 6100. Eso es lo que los Andes, acuerdo, así que cuando lo es, ya que es mayor de 60 pero también menos de un 100, inclusive de estos dos valores, entonces podemos traerte pasado cualquier cosa fuera de eso es una calificación no válida. Entonces mi reto para ustedes sería modificar esto para asegurarse de que se crea un no-cero. No es negativo. Negativo sería invitado más de mil es inválido. Entonces ese es mi pequeño reto para ti basado en este ejemplo, modifica esta declaración de caso para asegurarte que no sea menos de un 100. Como dije, pueden tener tantas declaraciones en esta sección como sea necesario. Entonces si querías imprimir pasas varias veces, siempre y cuando lo hagas antes de golpear el descanso, entonces no tienes ningún problema. Esa es otra forma de tomar una decisión dentro de nuestra aplicación C-Sharp. El final es un operador ternario, que es como una versión unifilar de una simple sentencia if. Digamos que quería determinar el mensaje a imprimir en base a la condición aquí. Podría decir fácilmente algo así como mensaje. Digamos que el mensaje var es igual a. Y luego compruebo el estado. Mi condición sería si número de manzanas es mayor que el número de naranjas, entonces quiero hacer mi mensaje b. Tienes más manzanas. De lo contrario mi mensaje será usted tiene más naranjas. Hay tantas formas en que puedes hacer esto. Este operador turner puede ser útil de tantas maneras. Necesito simplemente imprimir el mensaje en lugar de tener toda la declaración if aquí. Si y de lo contrario si sólo pudieras tener un burrito de desvío, no hay inconveniente. Así que voy a convertir nuestros opera tan simple como es, es que generalmente está diseñado para tener solo una condición para que no se vuelva complejo en su conjunto. Si bloque que te puede dar múltiples variaciones de diferentes columnas antiguas, etcétera Simplemente sería como, ¿ esta condición es verdadera o falsa? Si es cierto, denotado por el signo de interrogación, entonces este es el valor que quiero colocar dentro de esta variable. Si es falso denotado por el colon, entonces ese es el valor con el que estoy trabajando. Y eso prácticamente funciona en cualquier parte. Si quisiera un booleano, lo que necesitaría un operador ternario para booleano. Esa es una actividad para el tiempo de Leto. Ahora te di un reto para modificar esto para mostrar el rango. Entonces lo que yo hubiera hecho aquí, diremos int n, cuando n es mayor o igual a 0, es menor o igual a 59. Y eso es todo Realmente. Esto es entre 059, fallaste. Entre 100, se hace una pausa. Y entonces como dije, se puede tener las llaves que se montarían. Así que veamos. Te voy a mostrar, te dejaré con un ejemplo de un caso sencillo. Digamos que k es 101, eso ve el valor. Y entonces sólo voy a decir consola dot escribir línea. Ejemplo de caso único. Si hiciste los casos 101, ese es un solo ejemplo de caso. Esa línea roja está ahí porque necesito un descanso. Muy bien, entonces cada caso tiene que ser seguido de un descanso. Puedes seguir adelante y ejecutar esta aplicación. Nos van a pedir que ingresemos dos valores o lo siento, sigo bajo el equivocado. Entonces permítanme cambiarlo por declaraciones condicionales e intentarlo de nuevo. Después tenemos que ingresar el número de manzanas, alguien que diga diez, y luego una serie de naranjas en lo que se ve a los 20. Y luego estoy recibiendo el mensaje. Tienes más naranjas porque el número de naranjas fue en efecto mayor que el número de arte era, el número de manzanas fue de hecho menor que el número de naranjas. Por lo que tengo más naranjas derecha. Ahora, si entro al grado, fui a entrar 50, entonces fallaste y no lo sabías. Bueno, ese es el mensaje del operador ternario. Permítanme solo comentar que debería evitar cualquier confusión. Pero intentemos esto otra vez. Si entro diez para ambas manzanas y naranjas, 1010, tienes el mismo número de manzanas y naranjas. Gracias. Y entonces si entro 101, va a decir ejemplo de caso único. Una prueba más. Solo voy a comentar las operaciones de la sentencia if se ejecutan sin depuración, por lo que se carga un poco más rápidamente en la nota final. Si entro uno cae bajo algo mayor que entonces va a ver cuadrícula inválida. No pudo cumplir con ese caso. No pudo cumplir con ese caso. No necesitaba este caso, por lo que fue al defecto. Así es más o menos como funcionan las declaraciones condicionales en C-Sharp. 14. Declaraciones de repetición: Bienvenidos de vuelta chicos. En esta lección, estaremos viendo declaraciones de repetición en C Sharp. No hay declaraciones de repetición generalmente vienen en algunas formas. Tenemos un for-loop, tenemos un bucle while. Tienes bucle do while. Tienes otros que no estoy dispuesto a explorar en esta lección en particular, pero voy a hacer menciones honorables. Y eso es a saber, bueno, antes de cada bucle. Vamos a centrarnos en los que generalmente prevalecen en la programación general. Una vez más, siempre estoy tratando de mostrarte cómo emitir brevemente un todo para aplicar lo que estás aprendiendo aquí en C-Sharp en cualquier otro idioma. Para los bucles, mientras que los bucles lo hacen mientras los bucles, esos están disponibles en cualquier otro idioma. El for-loop es lo que llamamos bucle contador controlado. Básicamente significa que voy a bucle para esto muchas veces. Entonces hay un contador que golpea cuántas veces ya corriste y cuántas veces necesita correr. Entonces tenemos lo que llamamos bucle condicionado controlado. Este es un pre-chequeo, lo que significa que comprobará la condición. Por lo que acabamos de ver las condiciones resueltas o a las declaraciones condicionales. Entonces se va a revisar a Deshawn. Y luego si esa condición no se mantiene verdadera, entonces seguirá adelante y hará el bucle. Y seguirá revisando la condición hasta que sea verdad y luego se detendrá. Y luego tenemos el do-while, que es sólo un bucle invertido while, realmente donde se hace el cheque al final. Por lo que lo hará al menos una vez y luego comprobará después para ver si se cumple la condición, luego continuar. Por cada uno como dije, mención honorable. Simplemente veremos un ejemplo rápido de eso más adelante. Veamos una sintaxis de cuatro bucles para un bucle for es de cuatro, y luego abrir y cerrar paréntesis. Y luego decimos int. Y en términos generales, en la mayoría de los ejemplos que verás en Internet, ves que la variable que se utiliza no tiene relevancia usando la letra i no tiene relevancia para la corte. Podría haber usado norma, podría haber usado contador. Todo es un punto de referencia para la variable que va a estar haciendo un seguimiento de cuantas veces se va a ejecutar esto. Supongo que es letra más utilizada popularmente porque representa la palabra incremento. Incrementos significa en cada momento. Entonces puedo estar seguro de ello por incrementos. Pero también podría ser incremento igual a ser también un derecho. Voy a proceder con yo solo porque es la variable más utilizada, pero una vez más, no tiene relevancia sintáctica real. Entonces definimos una variable, generalmente un entero, le damos un nombre, y luego le asignamos el valor de 0 al principio mismo. Aviso que ves Visual Studio es auto completarlo para mí, pero quiero que comprendamos correctamente cada componente de este código. Por lo que no voy a autocompletar con el tipo y explicar a medida que voy. Para que ese primer bloque defina la variable que necesitamos como incrementador. Aviso un punto y coma lo termina. El segundo bloque en móvil para escribir representa el valor al que quería estar cuando salimos del bucle. Entonces puedo decir que menos de cinco o diez, sea cual sea el valor que ponga ahí. Si quisiera correr cinco veces, veo menos de cinco. No, ¿Por qué arruinaría cinco veces incluso cuando estoy diciendo que menos de cinco porque estoy empezando mi contacto 0. Entonces, si lo hicieras en tus dedos, acabo de leer aquí para que podamos verlo lo más claramente posible. 012345, es decir 123456 veces. Ves que si empiezo a contar desde 0 y luego subo al número cinco, eso es en realidad seis. Entonces por eso digo que debe ser menos de cinco. Entonces el momento en que golpee cinco significa que estoy superando mi número de corridas. Entonces 010 es uno, esto es dos, esto es tres, esto es cuatro, esto es cinco. Cuando los incrementos que cambian los cinco, se va a dar cuenta de que cinco ya no son menos de cinco. ¿ Ves lo que estoy viendo? En ese punto quería salir. Entonces esta es la condición de salida para el bucle. Quería correr de 0 a cuatro, que serían 12345 veces. Entonces si quisiera que corra diez veces, será entre 0 y i menos de diez. Solo para que puedas apreciar por qué estamos empezando en 0 y que estamos viendo menos que el número deseado. Hay diferentes formas de escribir esto, pero en términos generales, esta es la forma en que lo verás escrito. Así que lo estoy explicando fácilmente. Entender por qué comienza en 0, nuestra flecha blanca en lugar de menos que el número. ¿ Está bien? No, el siguiente bloque. Es nuestro incremento donde todo lo que tenemos que decir es yo plus plus. Por lo que antes miramos a los operadores de asignación de compuestos. Esos son acumuladores, lo que significa que en realidad estás agregando cualquier valor al origen del valor y poniendo de nuevo en una variable. Se trata de un incrementador que por defecto solo ve más uno. Eso es casi lo mismo que ver, se supone que es igual a yo más uno, que si estamos usando nuestra técnica acumulador sería yo es más igual a uno, que también podría ser escrito más igual a uno igual signo, que también podría escribirse como un plus plus. Eso es todo lo que estamos haciendo. Sólo lo estamos aumentando en uno cada vez. Entonces por eso dije que es un conos están controlados. Ahora esto podría ser yo más dos. Lo siento, si quisiera, se incrementa en dos. Tendría que decir que más equivale a dos. Se incrementaría en dos. Entonces si quisieras saltar en dos como un contado de 0 a diez, entonces arruinaría 0, luego dos, luego cuatro, luego seis, entonces,en luego dos, luego cuatro, luego seis, entonces, el momento en que sería cuantitativo, saltaría. Entonces solo te estoy mostrando las diferentes iteraciones, pero a un nivel muy básico, yo plus, además, una vez más, no soy tan importante. Esto podría ser norma, esto podría ser contraria. Y si dijera aquí variable de tránsito de colon, eso significa que todo lo que tenía como iodixanol en relación con la palabra contador. Eso por lo que un bucle for se ve en la mayoría de los idiomas de alto nivel. Muy bien, voy a proceder con I. Si hago línea console.log dentro de esto, puedo imprimir eso, ya sabes, yo en un bucle. Así que sólo estoy corriendo la línea en la que estoy. Expectativa es que esto va a imprimir por tantas veces como he definido, que sería entre 0 a diez o 00 a nueve, que serían diez veces lo que pongo dentro de este bloque, se repetiría por tantas veces como hemos definido aquí. Eso significa que si quiero hacer algo después del bucle, tengo que ponerlo fuera de ese bloque de bucles. Aquí puedo ver la consola dot leer línea y simplemente imprimiremos una línea en blanco al no poner nada ahí, sólo va a imprimir una línea en blanco. Y luego en esta línea, sólo voy a decir un bucle for terminado. Quería imprimir esta línea diez veces. Y luego al final de la misma vamos a decir que se ha terminado un bucle for. Entonces cambia tus proyectos por supuesto, y vamos a correr. Y luego cuando se toma acusar, se ve aquí 12345678910 veces, y luego el bucle está terminado. Entonces eso es lo que trae la repetición, porque si quisiera imprimir esto diez veces, habría tenido que escribir la consola fija diez veces, lo cual no es práctico. Si quisiera aumentarlo, tendría que volver atrás y escribirlo que muchas veces más en un for-loop, sólo puedo cambiar esto a 20. Arruinó 20 veces 25 para que se ejecutara 25 veces, cinco veces para hacerlo correr y menos veces, ¿verdad? Así que sólo para algunos contextos más, sin embargo, voy a mostrarles cuál es el valor. Entonces voy a cargar la consola para imprimir el valor del contador. Quería decir contador valor colon. Y entonces sólo voy a interpolar o yo variable, que es nuestro contador. Así que recuerda que cada vez esto tiene el aumento y luego va a volver a revisar. ¿ El aumento me ha hecho superar el número? Si no, entonces ejecuta algún comentario, Buck, tienen un número superado. Null viene caja. Entonces cada vez que arruina incrementa y comprueba, incrementa y sacude. Entonces vas a ver que corre entre el valor inicial de 0 y el valor de cuatro, porque a las cinco violaría eso. Vamos a probar eso. Muy bien, así que estoy corriendo de 0 a cinco ahora ves que la primera fila necesita 0, luego siguió adelante. El segundo corrida es 0, lo siento, 1D y 2D y 3D y 4D. Y en el momento en que habrías incrementado a cinco, saltó y luego se fue al resto del código. Y eso es más o menos todo lo que hace nuestro for-loop. Cada vez que tengas algo que quieres repetir por un número específico de veces, el bucle for es tu mejor bit. Muy bien, alguien para comentar esto solo por ahora. Y luego saltaremos al bucle while. El bucle while va a tener una sintaxis ligeramente diferente. Número uno, fui a querer darle alguna forma de contador. Por lo que hay número de hay una serie de aplicaciones para el bucle while. Permítanme, déjame empezar con la sintaxis. En primer lugar, ves un rato, luego le das una condición. Por lo que ya miramos una condición, ese mismo tipo de declaración de condición con menos de, mayor que etcétera que usarías en una declaración if es la misma condición que usarías dentro de la mientras que. Puedo ver mientras alguna variable llamada n es menor a cinco. He aquí por qué estaba diciendo que te daría el mostrador porque hay momentos en los que querías hacer algo por un número fijo de veces, necesitarás camión que el número de veces tienen que ir manualmente y crear una variable. Eso es que estás usando un contador 0. Entonces lo vas a dar a una condición. Es casi como lo que hicimos entre estas dos partes. Y entonces tendríamos que hacer esta parte fuera la pequeña sección del bucle. Así que sigamos adelante. Te voy a mostrar las dos formas. Sólo te voy a mostrar uno cuando cumpla con la condición basada en ciertos elementos versus uno, tenemos que hacerlo de manera contra-controlada. Digamos que quiero una consola dot write line. Y quería ver, dame un número, número de entrada. Muy bien, entonces voy a dejar que n obtenga ese valor viniendo de la línea de lectura de la consola. Muy bien. Estoy pidiendo al usuario un valor. Estoy tomando la entrada. Y luego voy a imprimir al final de ella que entraste. Ingresaste cualquier número que ingresaste, que es n, poner en el signo del dólar. Por lo que obtenemos una interpolación de entrada trabajando. Esta no es una situación contra-controlada. Esta es una situación en la que se está comprobando si n es menor a cinco. Si bien esta condición es verdadera, por favor ejecute el bucle. Egn arranca a las 0. Así que cuando haga este cheque, va a decir, bueno, está bien, fui a ejecutar este código. Si n aún cumple con la condición después de imprimir le dijo a la pantalla, entonces fui a ejecutarla de nuevo y seguirá ejecutándola hasta que se cumpla esa condición. Entonces esa no es una situación contra-controlada. Porque si entro un 100 números que son todos menos de cinco, entonces este bucle se correría continuamente hasta que entre algo que es mayor que cinco. Por lo que es, estos son bucle controlado por condiciones. Puede haber momentos en que lo necesites para ser contra-control. Y en ese punto al doctor realmente ponga en su paso manual para aumentar su contador en consecuencia. Aquí es donde estaré aumentando el ensayo de colon en consecuencia. Solo para asegurarme, por supuesto que no estaría tomando la entrada del usuario. Entonces permítanme quedarme que la condición controle la situación y vamos a probar. Aquí estamos viendo las entradas son número. Recuerda lo que eso va a correr mientras que en este E15 y arrancó a las 0. Y si te pongo en una, va a decir que entraste a uno, pero volvió a comprobarlo y ve eso, vale, sigo en bucle. Ingresa otro número dos. Y luego por tantos números como entre que sean menos de cinco, siempre se mantendrá en bucle y se sentará. Nunca me dejará hacer algo que viole la condición en la que se codificó. En el momento en que entre diez, saldrá. Aquí. Puedo ver mientras bucle terminado porque finalmente entré algo que trajo la condición. Muy bien, eso es más o menos para el bucle while. Entonces el bucle while en realidad se mantendría en un bucle infinito. No sé si ya has escuchado esa expresión antes. Un bucle infinito, probablemente lo hayas escuchado en una película antes. Pero esto es lo que es. Poco construido mientras que el bucle puede terminar en un bucle infinito donde ese bucle nunca se detendría e incluso podría tener graves consecuencias en su sistema. A la larga. Siempre quieres asegurarte de que cumples con esa condición. O mejor dicho escribes la condición de una manera que se pueda cumplir para dejar salir el bucle. Esta es una condición de salida. Ahora veamos el do-while, que no mencioné es solo una versión invertida del bucle while, pero hace el cheque al final, ¿verdad? Entonces voy a tomar adentro, tomar nuestra variable llamada n, reinicializarla a 0. Y entonces voy a ver, ¿abren una cuadra? Muy bien, entonces aquí es donde la sintaxis es diferente. Decimos hacer abrir el bloque y luego decimos mientras i, entonces tenemos la condición n es menor a cinco. Eso es más o menos aferrarse. Permítanme comentar esto por ahora. Entonces tenemos una variable y justo de la misma manera tuvimos que conseguir la variable y conseguir el acondicionamiento. Tenemos que hacer lo mismo aquí, excepto que la condición está al final, lo que significa que siempre hará esta parte primero, independientemente de cuál sea la condición si se trata de nudos METAR, lo hará al menos una vez. Entonces así es como lo llamaremos post check. Se está revisando después. Si usamos el mismo código que el do-while, mientras, lo siento, dentro del do-while se va a hacer esto. Entonces después se va a comprobar si n era aún menos de cinco. Así que vamos a probarlo. Uno. Ya ves aquí, está saltando. Me está pidiendo un número. Si entro diez, que es mayor que cinco, se va a imprimir y luego se va a revisar y ver que rebasé su. Así que no lo hagas más. Eso es más o menos todo lo que hay. Digamos si hubiera establecido este valor a diez inicialmente, lo que obviamente violaría esta condición y una flecha. Y todavía me va a pedir un valor para n Porque en lo que se refiere, tiene que hacer esto al menos una vez. Yo no lo hice. Si cambio esto a dos, todavía va a estar en el bucle porque ahora n es menos de cinco. Si lo cambio a cuatro y él me va a seguir haciendo bucle hasta que exceda la condición. Eso es un que es un do-while? No, hemos mirado el do-while, el while y el bucle for. El para cada bucle se vería algo así, pero esto se usa generalmente para listas son colecciones que vamos a ver más adelante. Pero básicamente diciendo para cada artículo o cada entrega o cada objeto dentro de nuestra colección, esto es lo que quería hacer. Entonces esto es útil cuando no necesariamente sabes cuántas veces quieres hacerlo y no necesariamente tienes una condición sobre la cual parar. Simplemente puedes usar el para que cada uno diga solo pasa por cada uno en lugar de la colección y haz esto, pero veremos eso más adelante. Entonces no soy como dije, realidad fue sólo una mención honorable. Sabe, saqué eso para cada bucle muy rápido, solo sé usar Visual Studios, sugerencias de código y sugerencias. El asunto es con estos, en realidad puedes empezar rápidamente a escribir para y luego presionar Tab dos veces. Se generará ese bloque de código para usted. Lo mismo por hacer, lo mismo por un tiempo. Soy más o menos funciona para cada bloque. Si dije si Tab dos veces, trae esa declaración IF, si digo cambiar tap dos veces, hace eso. Entonces te estoy mostrando que después del hecho porque realmente quería conseguir la práctica de mecanografiar, dijo desde cero, puedes apreciarlo. Y algunos de estos atajos no creen que funcionen tan bien en Visual Studio Code. Por lo que sigue siendo bueno entender todo el tipo o la sintaxis independientemente. Muy bien. En este punto, sólo voy a ponerme esa última consola en lugar de después del do-while como lo hice por el tiempo y los cuatro. Y eso es todo por aprender sobre declaraciones de repetición. 15. Métodos - Void: Hola chicos, bienvenidos de vuelta. En esta lección estaremos mirando métodos o funciones. Entonces estaré usando ambas palabras indistintamente porque representan el mismo tipo de constructo que tenemos disponible para nosotros en C-Sharp y muchos otros lenguajes de programación. En este punto, ya he creado el nuevo proyecto para que puedas golpear Pausa, seguir adelante y agregar el nuevo proyecto de consola, y lo estamos llamando métodos. Entonces, una vez que hayas hecho ese fin de semana, continúa. Por lo que tenemos dos tipos de funciones en la mayoría, si no todos los lenguajes de programación, y son funciones nulas y funciones de retorno de valor. Así evitar la forma mostrada básicamente completar una tarea y luego se mueve a lo largo de nuestras salidas. Entonces el retorno de valor completa una tarea. Sí, lo que es también se asegura de que sea que devuelva un resultado. Siempre puedes entrar en recuperar algo de la función de retorno de valor. La función void no devuelve nada, solo haces algo y se mueve a lo largo. Al definir funciones, puede terminar con tres partes y BSN nuevos contextos es posible que no necesariamente necesite uno. Usted terminaría con un prototipo, que básicamente define la función es un encabezado de función para ver el tipo, ya sea vacío o retorno de valor, y el nombre y los parámetros a esperarse. Muy bien, eso es lo que tiene el prototipo. Entonces tienes la definición, que suele tener el código. Contiene el bloque de código para la espuma mostrada. ¿ Qué está haciendo la función? Está ejecutando algo. Entonces dentro del código, tendríamos la llamada a la función. Este es el código real que hace que una función se ejecute. Porque nuestra función se sentará ahí y sobre la calidad no hará nada. Entonces eso es realmente lo que los compañeros de función. Entonces tenemos el prototipo que es como una definición, que, que es una especie de opcional puede no necesariamente siempre tengas que hacer un prototipo, pero siempre tienes una definición y tú siempre tener una llamada a función. Y esta es la parte clave. Ahora hemos estado interactuando con unas cuantas funciones a saber en nuestro, en nuestro código donde escribimos Hello World y todo, nuestra línea de escritura, esa es una función. Muy bien, Así que cuando dices consola dot escribir línea que es una función. El nombre de la función es la línea correcta. Y creo que por definición sería en realidad una función void porque no está devolviendo nada hacia la consola dot write line. Y luego las funciones suelen caracterizarse por los paréntesis abiertos y cercanos. Al menos eso es una llamada a función. Entonces esto es lo que llamamos a esa función. Su definición está en algún lugar dentro de este archivo de código. Y si lo miramos, verás que en realidad es una función nula. Muy bien, así que ves todo eso se une. Entonces WriteLine es en realidad una función nula a diferencia de la línea de lectura, que es otra función en el archivo de código, que toma parámetros. Claro, pero éste es en realidad un valor que devuelve, que está devolviendo una cadena. Cuando hablamos del tipo, es vacío o tiene un tipo de datos. Como científicos conocemos los tipos de datos. Puede devolver un valor de un tipo de datos específico después que haya hecho su función como lo que hace la línea roja. O puede ser nulo donde simplemente hace algo, no devuelve ningún valor. Te preguntarías, vale, entonces, ¿ por qué necesitamos funciones? Bueno, las funciones son buena manera de empaquetar código repetible o código que necesitamos repetir. Muy bien, por lo que uno de los fundamentos de la programación es seco. Eso es un principio. Cuando hablamos del principio DRY. Significa que no te repitas. En una puja por no repetirte cuando encuentres que tienes que escribir el mismo bloque de código para hacer algo en particular más de una vez, entonces terminarías creando una función. Entonces en lugar de escribir las cuatro o cinco líneas una y otra y otra vez en diferentes partes de la aplicación. Simplemente lo pones dentro de una función y la llamada donde sea necesario. Entonces eso es exactamente lo que hicieron con la consola dot write line. Consola dot write line probablemente tenga algunas líneas de código en ella. En lugar de pedirte que escribas esas cinco líneas de código cada vez, simplemente te dicen, llama a esta función siempre que necesites esta funcionalidad. Empecemos con un ejemplo de una función nula. ¿ Y si quisiera una espuma mostrara que básicamente sólo traía mi rodilla para definir la función uno. Una vez más, necesito ese tipo. En este caso sólo estoy imprimiendo el nombre, así que sólo necesito vacío. Vacío es el tipo. Y entonces le voy a dar el nombre, imprimir nombre. No lo hice, necesito decirle qué parámetros esperar. Entonces los parámetros se enumeran hacia fuera. Dentro de los paréntesis. Si no tengo ningún parámetro que estoy pasando, entonces no necesito poner nada dentro de los paréntesis, pero aparte y la enfermedad no son opcionales. Entonces al ver void print name open end hacia ella sabe que esta es una función y luego abro y cierro mis llaves rizadas, lo que me da la capacidad de empezar a escribir, mirarlo hacia arriba. Y en lugar de esta función, digamos que quería mantenerla simple y estoy imprimiendo mi nombre, así que estoy imprimiendo Trivago Williams. Eso es todo lo que quiero que haga esta función. Así que imagina que tuve que imprimir verdaderos o Williams múltiples lugares. Bien, bastante justo. Pero entonces, ¿y si quisiera imprimir todo mi nombre completo o solo mi nombre? Eso significa que en cada uno de esos varios lugares tendría que ir y cambiar esta línea de código varias veces. O puedo saber, decir nombre de impresión puedo llamar a esta función lo hará en cualquier parte de mi aplicación. Y luego si necesitaba cambiar la forma en que funciona, solo voy a la función y cambio el código uno, por favor. Repite usted mismo. Si llamo a esto diez veces, no importa. Todo lo que va a hacer es ir a la función en Conoce la llamada. Si intentaste hacer una llamada de función para una función que no existe, por supuesto obtendrás un error. Muy bien, bueno, siempre se puede tener una función que existe y nunca se llama. Entonces compartirán esa línea verde, que solo está diciendo que está ahí pero nunca se usa. ¿ Seguro que lo necesitas? Muy bien. Hay otro principio. No lo vas a necesitar, o YAGNI para abreviar. No lo vas a necesitar. En este principio. Básicamente, digamos, no escribas código que no necesites. Si no tienes ningún propósito para esta función, no la escribas, no la tiene ahí. Obstruyendo tu archivo de código porque lo vas a usar. Muy bien, así que volvamos a la película que Shaun cuesta. Entonces tenemos la función aquí. La llamada a función solo llamará el nombre de la función junto a los paréntesis con cualquier parámetro según sea necesario. En este caso, no tengo parámetros definidos, por lo que no son necesarios cuando hice esa llamada. De acuerdo, no necesito trazar pasando ningún valor aquí, al igual que console.WriteLine, hay momentos en que la nueva consola dot escribe línea sin pasar valor. Y ahí tiende cuando consolamos esa línea roja con un valor que se pasa. Muy bien, entonces este es uno que t experimental. Este es uno que no toma parámetros. Lo miramos en unos pocos. Entonces si ejecuto esta aplicación, solo debería seguir adelante y llamar a mi función de nombre de impresión. Ahí vamos. Entonces este es el archivo de código principal, lo que sea que escribimos aquí, sí, pero cualquier método que pongamos aquí eso solo va a obtener este bloque de código una vez que sea suficiente función en R, Una vez que sea un definición de una función, sólo se ejecuta cuando hay una llamada a función. Entonces por eso estamos viendo camarones o imprimirlo. No obstante, si fuera a eliminar esta llamada de función e intentarlo de nuevo, no pasaría nada. Literalmente no pasaría nada porque no hay nada que pasar. Hay una función que nunca fue llamada. No hay mucho código para ser ejecutado en ninguna parte. Eso es todo suyo que llama o interrumpe con su función. Muy bien, así que voy a dejar los ejemplos de métodos nulos son funciones nulas aquí. De verdad y de verdad. Una vez más, es sólo hacer algo. No está devolviendo un valor. Entonces si quisieras, digamos, una función nula para hacer algunas matemáticas, como números impares, por lo que tienes situación en la que querrías pasar en un parámetro. Muy bien, así que digamos que querrías ver audición. Estábamos hablando del potencial de hacer una calculadora antes. ¿ Qué pasa si agregas suma nula y luego quisieras sumar dos números para que pudieras poner parámetros y relanzar. Vamos a ir el parámetro Allah es una variable que usted está definiendo dentro de los paréntesis en la definición de la función. Y el valor que se pasa en se asignará a ese valor en el mismo orden que se define. Permítanme hacer eso en un ejemplo de código. Digamos que tenemos que tomar dos números. Estoy tomando int num1, int num2. Entonces quiero imprimir a la pantalla la suma off. Entonces mira, oh, sólo podemos hacer que se vea bien y nodos profesionales. Entonces fui a usar la interpolación y poner en una normal. Y herramienta norma es, entonces solo puedo poner en la matemática num1 más num2. Entonces no estamos devolviendo un valor. Sólo voy a llamar a la función, darle dos valores, y luego va a hacer el proceso e imprimir la pantalla, pero no está devolviendo nada para llamar a eso, No, diría adición. Y pasando dos valores. Y nota ahora estoy metiendo eso en la pista, poniendo un valor para num un lado, haz eso y presiona coma. Y luego viendo poner un valor para la herramienta num, lo hago y sigo. Y luego D2L lo llamaría si tuviéramos que afianzar esto un poco, sin entrada de usuario antigua para num1 y num2. Y lo que voy a hacer es volver a saltar a uno de nuestros ejemplos anteriores donde pedimos dos entradas. Creo que lo hiciste en nuestro OK. ¿Qué cree que las declaraciones condicionales pidieron número de naranjas y número de manzanas? Sólo estoy tratando de trabajar más inteligente, no más duro, ¿verdad? Así que ingresa el número, simplemente lo mantendré simple. Número uno y número dos. Entonces estamos llamando a este número uno, número dos. Entonces estoy haciendo todo esto deliberado con mi nomenclatura porque estoy tomando variables, estoy tomando valores del usuario. Estoy empezando a ser el número uno. Número dos, he definido en mi función que está tomando num1, num2. No obstante, todo lo que tengo que hacer es pasar el valor para el número uno como primer verbo y dedicado por lo normal al segundo verbal. que sólo va a mostrar que el naming aquí no tiene correlación con lo que está aquí, porque puedo pasar en los valores literales uno para num 12, para num2, puedo pasar en mi variable. Eso es que obtuve del usuario para el número uno y la variable para el número dos. El hecho es que para cuando hace esta llamada y pasa, lo que fue primero en la lista pasa en lugar de primeros en este pariente o un segundo en las bandas de lista con lo enfermo en la lista. Entonces el método void va a seguir adelante y ejecutar. este momento estamos aprendiendo acerca de uno, haciendo métodos nulos para definirlos y llamarlos, y luego tres, escribiendo en nuestros parámetros. Entonces si ejecuto esta aplicación, sí, se va a imprimir para VOR porque tenemos el nombre impreso. Seguro. Entonces hace eso. Notarían que continúa con el resto del programa. Entonces fue, llamó a la función, la función y dijo luego volvió y luego continuó nodo para ver Ingresar número uno. Sólo voy a decir diez y luego ingresar el número al 20. Entonces se va a ir a conocer la tos de Photoshop, donde además pasando a una t de extremo a extremo Entonces la suma de estaño y gemelo T es la matemática. Entonces aseguró que buck se da cuenta de que no hay nada más y luego pueden arreglarlo. Así es realmente como funcionan las funciones. Así que imagina que tenías que escribir este tipo de lógica múltiples lugares. No quieres tener que estar escribiendo esto cada vez. Preguntaron uno num1, num2, num1, num2, num1 num2. Escribes el método. Sí, puedes avisar al usuario y todo lo que haces es llamar. Si estás escribiendo una calculadora, puedes crear un método por operación que haría algo muy parecido a esto. Y llamaste a Operación en consecuencia. 16. Métodos - Métodos - Retorno de valor: Muy bien chicos, así que continuamos nuestra aventura en métodos y mantenemos su trabajo. Ya miramos la función void, por lo que enseñará uno que no toma parámetros y miramos a otro que toma parámetros. Lo clave de las funciones de vacío es que simplemente no estaban operando y luego terminan. Entonces si quisiéramos saber el final de esa operación, simplemente podríamos escribir console.WriteLine y C y off void función. Entonces cuando presionamos Start, va al IIT siendo el compilador, va a ir en el orden en que se escribiera el código. Esto va a ver que esta es la definición de un método. No hagas nada aquí. Esta es la definición de un método no hagas nada ahí dentro. No obstante, la primera línea de código que necesito ejecutar es una llamada a función, lo que significa que necesito ir a buscar esta función. Yo hubiera visto ya su definición. Haz lo que diga que debo hacer. Y entonces ese es el final de esta función. Después pasamos a conseguir dos números como entrada. Una vez que el usuario haya proporcionado esos van a seguir adelante y vemos que esta es otra llamada a función. Es pedir estos dos números. Entonces se detiene, va, encuentra que la función se detiene en dos números. Esos lo que se supone que debe hacer. Y entonces ese sería el final de esa llamada de función también. Muy bien, así que eso es esto todas las funciones de vacío funcionan. No, vamos a echar un vistazo a las funciones de retorno de valor. Ninguna molestia de devolver las funciones hacen exactamente lo que el nombre sugiere. Ellos devuelven un valor, algo se devuelve al final. A menudo operación. Digamos que queríamos encontrar el más grande de tres números. Entonces el más grande fuera de tres. Por lo que voy a presentar otro prompt aquí para un tercer número. Por lo que tomamos el número uno, el número dos, después nos enteramos cuál es la suma del número 12 o más bien qué es la suma de ellos. Pero vamos a tener aquí una tercera variable que va a tomar nuestro tercer número al final de esta operación o para el momento en que golpee esto. Ahora deberíamos tener tres números. Ahora quiero saber cuál es el mayor número. Voy a crear un método que va a tomar esos tres números y devolver el más grande. Cuando hablamos de retorno de valor, hay que empezar con el tipo de datos. ¿ Qué tipo de valor estoy regresando? Bueno, en este caso, si estoy comparando tres enteros, entonces la expectativa es que fui a devolver el más grande de los tres enteros. Entonces mi tipo de retorno va a ser un entero. Si estuviera devolviendo la palabra o un nombre, serían cadenas. Entonces la misma manera que consideras qué tipo de datos debes usar para tu variable es la misma. Consideramos qué tipo de datos utiliza para su tipo de devolución de su método. Voy a decir int. Y luego fui a llamar a este número más grande. Y reglas de nomenclatura muy similares se aplican con métodos, excepto que tendemos a usar el caso pasco para los métodos a diferencia de CamelCase. Así que recuerda más caso Co significa que usted mayúscula la primera letra así como todos los demás primero fuera de las otras palabras en ese bloque de texto, esa es su mecanografía. ¿ Está bien? Así int mayor número. Entonces voy a decirle que necesita tomar tres parámetros aquí, Visual Studio sugiriendo que IT num1, num2, ambos botón int fueron a introducir un tercero, int num tres, porque quería tomar tres números y tantos números como necesites enumeras más por supuesto. No, verás que ya he alineado aquí. Necesito ver en eso no todas las rutas de código devuelven un valor. Entonces me gusta explicar lo que significan estos diferentes errores porque a veces no es muy obvio, aquí mismo, ETC. Y que tenemos un método que ha visto es un valor que regresa, pero no ve que se devuelva nada. Muy bien, entonces eso significa que necesitamos una palabra clave y esa palabra clave se devuelve. Después del regreso, tenemos que quedarnos en lo que estamos regresando. Entonces aquí solo te voy a mostrar si digo return 0, está satisfecho porque 0 es un valor entero, un valor entero, y tiene la declaración return para el entero. Entonces está esperando que devuelva un entero. Tengo esta declaración viendo estoy devolviendo un entero. Si te pongo en una cadena como mi nombre, entonces recibiría un error porque esto no es un entero. Entonces es bueno ver que no se puede convertir implícitamente cadena de tipo en int y Esta es una cadena, pero está esperando que se devuelva un entero . Esas son pequeñas cosas que hay que tener en cuenta cuando se trata de funciones de retorno de valor. Así que vamos a pasar por un ejercicio rápido aquí. Te voy a mostrar otra cosa llamada anidación, que es donde tenemos una estructura de control dentro de otra. Entonces R1 escriba fuera de construir dentro de otro significado. Aquí tenemos un método, pero voy a poner una declaración if porque la única manera de saber cuál el número más grande aquí es usar una declaración if o alguna forma de lógica de decisión. Fui a empezar viendo que el mayor número es igual a num uno. Esto es sólo una suposición porque uno de ellos debe ser el más grande. Entonces voy a suponer que nadie es el más grande, pero entonces necesito probar si el número más grande es en realidad mayor que num dos, num tres, entonces si alguno de estos es mayor que, eso será el nuevo número más grande. Entonces fui a decir, si de la misma manera lo dije, si más grande, veamos si más grande es menor que num2, que obviamente más grande necesita ser igual a m2 porque el mayor número no puede ser menor que nombre 2. Si es menor que, entonces necesito reasignar. Saber num2 asume el papel de mayor número. Entonces puedo decir si de nuevo, si el mayor número es menor a num tres, entonces Visual Studio me va a ayudar de nuevo y hacerme saber que el coordinador en es que el mayor número no es igual a num tres. Aviso Tengo dos declaraciones. No usé si más, si o lo que sea porque necesitaba hacer esta comparación. Y entonces estas comparación, si hiciera un si más, la única manera que iría a esta comparación es si éste no fuera cierto, querrás ser muy cuidadoso y muy deliberado con esos tipos de cosas. Si más significa que voy a hacer cualquiera o. Entonces si éste es cierto, entonces no necesito mirar esto porque éste era cierto. No obstante, si hago declaraciones completamente diferentes e individuales si, se comprobará esto. Si es cierto, entonces entrará en el cuerpo. Entonces comprobará esto. Y si es cierto, entrará en el cuerpo. Entonces esto está diciendo que si normal uno comienza como cinco, y luego prueba para ver si el punto cinco, que es el más grande, ese es el valor cinco, es menor que num2. Y digamos que num2 fue 105 no es menos que 105 es menos de diez, eso es cierto. Entonces ningún mayor obtiene el valor de diez. Entonces pasará a decir, comprobar si diez es menor que, digamos tres. Si no son menos de tres, entonces esto no se ejecutará ya que esto no era cierto. Entonces tenemos que regresar. Si dijiste más grande, entonces definitivamente estás en lo correcto. Tenemos que devolver ese valor. Entonces esto está devolviendo un número entero que se considera el mayor número. Entonces el método que lo nombres según lo que sabes que se supone que debe hacer. Sí. Bueno, siempre tienes que asegurarte de que cualquier lógica que estés esbozando ahí coincide con la operación prevista y cualquier valor que se devuelva coincida con el icono esperado. Así que te imaginas que escribiste un método para calcular impuesto de alguien y luego tienes mal el bit de cálculo. Entonces cada vez que llamas a ese método de cálculo de impuestos, estaba devolviendo el valor equivocado y estás tomando demasiado impuesto de esta persona, eso no estaría bien. Por lo que siempre es bueno entender qué lógica aquí poniendo en relación con la operación en cuestión. Y sí, puedo sentarme aquí y mostrarte ejemplos donde tienes que practicar. Así es como te pones mejor en esto. Para que te pongas mejor en la toma de estas decisiones. Hemos determinado cuál es el mayor número y luego lo devolvemos nulo. Puedo hacer una llamada de función para el número más grande. Después de conseguir los tres números. No puedo simplemente decir el número más grande y luego pasar en el número uno. Número dos, número tres. ¿ Está bien? No, cuando paso esto , ¿qué pasa? Sólo voy a llamar a este método. Devuelve más grande. Y entonces qué pasa? Sabemos que sin una consola.WriteLine, nada se está imprimiendo a la pantalla aunque la consola lea la línea, nada se está tomando de la pantalla ya que son toneladas cuando golpea este método, Es bueno subir periodos, entrar en los números que las costas van a hacer esto. Se va a devolver la rueda de agua más grande. Tenemos que afianzar esto un poco más. En realidad tengo que poner esto dentro de una variable. Para que pueda saber C crea una variable llamada, en este caso resultado, y será igual a los resultados de esta llamada a función. Del mismo modo que hemos estado haciendo lo mismo aquí cuando pedimos aportes. Decimos consola punto leer línea, o dijimos que el nombre de cadena es igual a la consola dot leer la línea. Está llamando a un método, y luego lo está asignando a este lado. En el caso del software, tenemos que hacer conversión, convertir a en 32, es decir una función de retorno de valor. Todo lo que está haciendo es devolver un entero, ¿verdad? Lo mismo para que convierta el char y bool, etcétera Simplemente está devolviendo cualquier tipo de datos que dijera que volverá. Por eso es muy importante la asignación o la variabilidad a la que se está asignando. Entonces int número dos es igual a convertir en 32, Eso es método llamar a uno. Pero en donde pasar en otro método aquí que lo hará. Danos el valor que se convertirá y luego nuestra ciencia. Entonces es lo mismo aquí excepto dónde querer escribir tu propio método. Esta vez, estoy viendo crea una variable de tipo entero llamado resultado y le asigna lo que se devuelva de este método llamado mayor número, que está devolviendo un entero. ¿ Está bien? Entonces cuando pasamos en esos tres números, subir, cumplir con la comparación, devolver el que sea el más grande. Y luego cuando regresamos, eso se almacena en el interior resultado. Entonces no, puedo ver que el mayor número es. Sólo voy a usar la interpolación aquí y ver resultados. Interpolación significa que puse el signo del dólar al frente de la corriente. Ahí vamos. Muy bien, así que nadie va a imprimir el mayor número es resultado. No. Te voy a mostrar otra forma que podrías haber hecho esto. Para utilizar menos líneas. En realidad podrías simplemente imprimir eso. Muy bien, veamos. Podríamos decir consola dot, escribir línea. Este bloque de cadena es, y luego poner en esa llamada de función dentro de la sección interpolada. Eso significa que irá y cumplirá con la llamada de función. El valor se devuelve y ese valor es lo que se imprimirá dentro de esa sección. Así que solo te estoy mostrando, siempre te voy a mostrar tus opciones. Podrías hacerlo en dos líneas como esta, o podrías hacerlo en una línea como esta. Tiendo a preferir usar dos líneas porque esa forma MI aumenta la legibilidad. Puedo ver claramente que se trata de una variable. Así es como se está configurando. Y entonces esto siempre se está a diferencia de un poco más largo de texto donde tengo ponerme buenas lentes para ver que esta es una función llamada sucediendo dentro de una cadena interpolada, dentro de esto, dentro de eso, por qué todavía era trabajo. También tienes que considerar la legibilidad de tu código porque podrías estar escribiendo por ti mismo. Nadie se ve genial. Tal vez tomar un descanso y volver y tú estarías como, qué, ¿qué escribí aquí? ¿ Por qué lo escribí así? O alguien más puede tener que mirar tu código. Y no estaban pensando de la manera en que estabas pensando cuando escribiste el código. Por lo que es difícil para ellos cogerse. Por lo que siempre tienes que considerar esas posibilidades cuando estás escribiendo tu código. Así que a veces las cosas se podían hacer en una línea, pero las dividí todas sólo para verlo porque hace que sea más fácil digerir y leer. Muy bien, así que probemos esto. Voy a correr sin depurar. Entonces pongamos más de tres números. Entonces fui a poner en 1056 y va a decir que el mayor número es diez. Sostenlo no. Porque la norma más grande. mayor consiguió inicialmente el número diez, ¿verdad? Esa era mi normal. Entonces dijo, si diez es menos de cinco, que no lo es. Entonces se saltó por encima de eso. Y dijo, si diez es menos de seis, creo que dentro de ella no lo es. Entonces se saltó por encima de eso. Entonces devolvió diez y luego almacenó estaño en lugar de resultados, que es lo que se imprimió a la pantalla. Ese es todo su valor regresando métodos de trabajo. 17. Funciones de manipulación de cadenas: Muy bien chicos, Así que estamos saliendo del camino trillado de explorar el B6 del desarrollo C-sharp y entrar en algunos conceptos más avanzados. Y una de ellas es una manipulación de cadenas con una cadena en manipulaciones de tiempo D8 porque esos dos tipos de datos, como aspecto deme inconsútil, pueden causar muchos problemas si no se manejan correctamente. Vamos a estar mirando algunas de las formas en que podemos manipular cuerdas. Lo hemos estado haciendo por nosotros hasta cierto punto después de saberlo, pero estaremos mirando a algunos otros. Y también echaremos un vistazo a los valores del tiempo dy dt y sostenemos que los pueden ser manipulados también. Empecemos rápidamente. Sabemos imprimir, por lo que sabemos imprimir la cuerda. Debería decir imprimir a pantalla aquí, lo siento, eso es consola dot write line. Si voy a imprimir una cosa que acabo de ver, la única variable, en este caso, Visual Studio realmente me está ayudando con la concatenación. Entonces ese es en realidad el código para el segundo. Si solo quería imprimir primer tema que sabemos lo que acabamos de decir, línea console.log, por favor en la cadena o la variable, o es una corriente estática que pasamos. Cualquiera que funcione una vez que sea una variable de cadena, bueno, francamente, puede manejar casi todas las variables hasta donde hemos visto, todos los tipos primitivos simples al menos. Entonces esas son tus opciones para Imprimir Pantalla. Ahora cuando se trata de concatenación, sabemos que podemos usar nuestro signo más. Entonces aquí estoy viendo Console.WriteLine, el valor que está en FirstName, espacio entre sí, y luego otra variable. También sabemos que nosotros, si queríamos una cadena estática más la variable, veríamos mi nombre completo es. Y entonces seríamos capaces de concatenar la variable. Y entonces tantas otras variables como necesitaríamos, simplemente fluye con el espacio vacío. Entonces la relevancia de las especies que imprime, va a imprimir exactamente lo que ve. Su impresión mi espacio, espacio completo, espacio nombres es espacio, luego LastName, luego espacio de nuevo, luego primer nombre. Entonces esa es la importancia de tener ese poco espacio ahí dentro. ¿ Está bien? No, Aunque forma como hemos mirado hacer concatenación sería usar interpolación donde en lugar de usar los signos más, podemos usar nuestros tirantes rizados. Acabamos de correr un bloque de cuerda. Pero entonces por supuesto te das cuenta que yo uso variables aquí, pero siguen siendo anaranjadas. Necesito el signo del dólar en el frente. Voy a tomar nota que es una cadena interpolada para que sepa que de todas formas ve los tirantes rizados, ese debería ser un verbo ahí dentro. Muy bien, así que esta es otra forma porque ahora está corriendo mi espacio. El espacio de nombres completo es entonces el espacio de apellido, el nombre nombre, apellido, nombre. Normalmente tendrías como una coma, así que sería coma williams para VOR. Ve que a pesar de que estoy escribiendo entre las dos variables aquí y la cadena interpolada. Va a verlo como un bloque contiguo, sólo va a súper imponer las variables que sabe que necesita, hay que estar ahí. En términos generales, estos son los más comunes que encontrarás en agua y C-sharp. Pero entonces la alternativa, por supuesto, como habíamos mirado era usar marcadores de posición. Entonces no estamos usando ninguna interpolación. En cambio estamos usando 12 y tantas otras carpetas policiales como sea necesario. Y luego solo ponemos las variables que coinciden en ese orden. Entonces nombre, luego apellido, apellido aquí, sería mucho por favor titular 0, nombre tanto como marcador de posición uno. Esas son formas en que podemos manejar concatenación en cuerdas. No, hay momentos en los que puede querer saber un largo entero es cuántas letras hay en el primer tema, por ejemplo, si quisiera hacer eso, me gustaría encontrar la longitud de la cuerda. Entonces podría decir int, digamos que la longitud es igual a. Y luego puedo llamar a la variable. Y luego mira que Visual Studio es contextualmente autocompletar en esa fórmula. Entonces va a decir, consígueme la variable, mire el valor en ella y diciéndome la longitud. Mi nombre tiene siete letras en ella, esto simplemente devolvería siete. Esta es una propiedad en esa cadena llamada length. Cuando nos metemos en clases y objetos, Yolanda, tiempo similar compras una propiedad. Así que no te preocupes por eso. El uso de esa palabra clave aún. Eso es todo. Por lo que verías la longitud de una cuerda. Si quisieras imprimir ese curso duro total, dirías algo así como consola dot write line que utilicé simplemente decir longitud o déjame simplemente hacerlo un poco más claro. Alguien para usar el estilo más antiguo todo el camino fuera de la concatenación. Esto sería ver que tu nombre es. Ok. Permítanme hacer esto en toda una frase. Por lo que esto sería interpolado. Permítanme convertirlo en contaminado. Tu nombre es, y puedo poner tantas letras de largo. Cierra el arroyo, y eso es todo. Entonces está imprimiendo una frase entera con una variable smack dab en medio de una cadena literal. Ahora, pasemos a otra cosa. ¿ Y si quisiéramos reemplazar las cartas? Entonces digamos que quería un nombre nuevo o quería ver cómo sería mi nombre. Si reemplacé todas las t con la letra clave. Puedo ver un nombre de pila, puntos. Entonces si haces el punto, ves una serie de lo que llamaremos métodos. Ya miramos métodos. Al igual que podemos decir, consola dot, escribir línea es nuestro método. En realidad puedes en cualquier variable de cadena c, punto variable, y luego verás un montón de métodos. Algunos de ellos son útiles, algunos no lo son. Sólo para verlo semana y tener esta propiedad. Entonces si digo Reemplazar, entonces en realidad verás que hay un método que la llaman por favor. Y quiere dos cosas. Quiere el viejo char o personaje, quiere un nuevo personaje. Podía ver el carácter t. Recuerdo que los caracteres usan comillas simples y solo un valor puede ir en lugar de una sola comilla. ¿ Está bien? Entonces ese es su personaje. Y quiero reemplazarlo por un nuevo personaje de k Esto va a evaluar automáticamente esta cadena y pasar y encontrar todas las T's y reemplazarlas por K. Muy bien, fui a hacer una pausa aquí y hacer algunas pruebas. Así que cambiemos sobre nuestro proyecto es a través de la manipulación. Espero que ya lo hubieras hecho. Lo siento, no señalé puntos que le dijo antes pero crea tu manipulación de clustering de proyectos. O tal vez ya lo creaste con un nombre diferente. Ésos no son realmente los puntos grandes. Solo asegúrate de que estás corriendo en un nuevo método, en un nuevo proyecto más bien. Entonces vamos a correr. Entonces aquí están la impresión. Por lo que hemos atravesado cuerda siendo impresa. Ahí está. Sé que tenemos todas las diferentes formas en las que hicimos oscurecido cortando concatenaciones y tendrá su nombre es de siete letras de largo. Y luego hicimos el reemplazo por nuevo nombre lo que no hice un sprint el final resulta alguien para ver tu nuevo nombre es, y luego voy a ver nuevo nombre. Entonces eso es Australia. Eso otra vez, correcto. Entonces aquí tenemos tu nuevo nombre es Chris. Oh, no me gusta el sonido de ese. Correcto. Pero ahora ya ves cómo se ve. Por lo que aunque quisiera quitar la camada, veamos el ojo. Entonces mi nombre es bastante único porque es realmente trivial. ¿ Qué es un ojo ahí dentro? Y es griego y significa reservorio de fuerza. Tanto mucha gente, cuando los llaman por su nombre, simplemente me llaman problemas. Realmente no hago un gran problema con eso, pero eso está bien. Digamos que dije nuevo nombre, uno es FirstNombre, reemplace la letra I, el carácter i sin nada. Podía verlo con un espacio. Porque realmente y verdaderamente un personaje no puede estar vacío así. Por eso te estás poniendo esa línea verde, esa roja. No se puede tener un carácter literal vacío. Y no hay auto dot vacío como más viejo es un arroyo dot mt, ¿no? No, no hay torreta. Así que solo veamos, voy a reemplazarlo por un espacio, así que una especie, en realidad un personaje. Muy bien, y luego fui a ver que tu nuevo nombre es nuevo nombre uno. Entonces veamos qué traería eso. Ahí está. Por lo que no, tiene ese espacio donde me dijeron que reemplazan las obras de operación. Muy bien, así que sigamos avanzando. El siguiente sería anexar a otra variable de cadena realmente y verdaderamente que se vería igual esta concatenación aquí o cualquiera de estas. Porque vemos que en realidad solo puedes combinarlos, ¿verdad? Así que en realidad podría ver var, lo siento, string listening gets so var, string full name es igual a una variable combinada con otra variable. Y eso es todo. O si solo quisiera combinarlas sin nada dentro de ti mismo a C plus, bien, así que una vez que pongas un signo más entre una cuerda o entre dos cuerdas, sería que las cuerdas literales de aire sean variables de cadena o un verbo que bajo cadena literal, sin embargo, la combinación, solo usa ese signo más. Para que eso no me diera mi nombre completo, que puedo imprimir. Tu nombre completo, es empleado hasta el nombre completo allí. Ahora la siguiente opción sería dividir la corriente. Y se puede ver aquí que empecé a escribir el código tendría un error. Y el error es decir que no puede convertir implícitamente cadena de tipo con esos cuadros, con esos son dos corchetes herramienta cadenas regulares. Entonces en otras palabras, esto realmente me daría una colección de cuerdas. Entonces aquí estoy viendo el nombre completo. Eso será atravesado el espacio Williams y lo dividirá. Dondequiera que haya un v. Como pueden aparecer muchas visas en el bloque de cadena, se va a dividir en consecuencia. Entonces si hay tres V, entonces lo va a dividir a la izquierda de uno de los V, a los disturbios de esa V y en la amortización la siguiente V, Eso es más o menos lo que va a hacer . Entonces en Trevarthen Williams, hay una VC terminaría con ese lado. Y este lado como dos cuerdas o dos bloques de cuerda. Así que no puedo estar almacenando dos bloques de cuerda en una sola cadena, razón por la que dije que necesita los corchetes, lo que significa que aún no estamos del todo listos para las áreas. No estamos del todo listos. Lo vamos a explorar con más detalle. Pero fui a mostrarte cuál es el resultado de esta operación independientemente, la mejor manera de iterar a través una matriz es usar un for-loop. Por lo general decir como cuatro. Y entonces ya pasamos por un bucle for. Para int i, que es mi contador, es igual a 0. Yo es menor que la longitud, es decir, ¿cuántas veces quieres que pase? Y luego yo más, plus. En este caso, no sé cuántos bloques de cuerda voy a conseguir. Realmente no lo sé porque no sé cuál va a ser el nombre completo. El nombre completo podría haber sido entrada del usuario donde la persona transmisión de Internet sin v's en ella. Entonces no hay nada que dividir igual a 053 V's en ella. Entonces R5, no lo sé. Para la variable de longitud, no me gustaría poner diez porque entonces fui a ir diez veces y tal vez solo necesitaba hacer dos veces. Y entonces eso realmente va a causar un problema. Nuevamente, no me estoy metiendo demasiado en detalle con el de Ari todavía. No obstante, una manera fácil de navegar esto sería tomar esta matriz de cadenas c. En lugar de darnos número específico, fui a ver la longitud del punto IRI, cualquiera que sea la longitud, sea cual sea el número de elementos están bloqueados. Entonces Stream salga de esa operación se almacenará aquí. Y cada uno va a llamar a Windows uno. Cada bloque va a ser un bloque dentro de esta colección de cuerdas. Estoy diciendo que me traigan el número de bloques en la colección de cuerdas, y ese es el número de veces que quiero que bucees. Vamos a ir más detallados en eso más adelante, así que no te preocupes por ello. Pero en este momento solo quería mostrarte la consola de la línea correcta. Todo lo que tendría que hacer es decir, dame el valor de nombre dividido por subíndice que está en I. ¿ Verdad? Sólo voy a imprimir eso. Y luego cuando lo miré en modo de debug, voy a ver bandeja y luego, o William, eso es realmente imprimiendo aquí porque esa v serían los puntos de división. Entonces, ¿cuál es el ascensor de la V? ¿ Qué hay a la derecha de la v? Más, V más splits. Entonces eso es lo que dije. No sabemos cuántas divisiones tendríamos, razón por la que tratamos de mantenerla dinámica. Una vez más, estaremos mirando eso. El Concepto de Ironía es más adelante. Pasemos a las comparaciones de cadenas. Una comparación de cadenas me ocurre cuando se desea comparar algo que es un usuario ingresado a una opción potencial, o desea comparar dos valores con variables. Hay número de razones por las que necesitas comparar cadenas. Por lo que una comparación muy común que puede terminar haciendo es comprobar si algo está vacío o predeterminado. Porque como dije desde el principio cuando definí la cadena, digamos variable, variable de prueba. Recuerda, definí la cadena y no te di el valor en este punto, es lo que llamas nulo. ¿ Está bien? Ese es otro punto. Es posible que se lo haya dado. Esto. No es nulo, pero no tiene valor. Así que no es, no, sólo está vacío. Simplemente no es de la misma manera. Eso será lo mismo que ver el punto de cuerda vacío. Muy bien, por lo que estos dos en realidad equivaldrían al mismo tema. Permítanme solo poner eso como comentario ahí para mostrar que eso significa stream dot vacío. ¿ Está bien? Y en otras, en algunas situaciones no se sabe si el usuario realmente puso en algo válido o tan-y-así hay que comprobar si es cierto, si el nulo, lo siento, si la cadena es nula o si está vacía . Hay un método incorporado en el que cuando escribes la cadena de tipo de datos y luego ves una parada completa, en realidad obtienes un montón de métodos también miró eso. Tienes está molar vacío y tienes Ismail, nuestro espacio en blanco. Espace en blanco sería más así, donde acabas de poner un espacio ahí. Ahí no hay nada. Quería decir cadena nula. Eso está en esas cuerdas. Esto es un vacío. String, entonces este espacio en blanco, recto, solo para que quede claro lo que representa cada uno. En cambio, te veré en variable de prueba. Se puede ver es nulo o vacío, que o bien dirá sí o no. Eso va a devolver una función de retorno de valor booleano que está volviendo true. No está vacío ni nulo, no es conocimiento no está vacío. Por lo que necesitan analizar la cuerda. Por lo que no se podía ver ninguna cadena aquí si es nula o vacía. Y ahí es donde dirías, bueno, tengo un ISI aquí. No puedo proceder. Y en realidad, cuando miras eso, así que en C-Sharp, en versiones posteriores de C Sharp, realidad me está impidiendo usar esto sin antes asignar un valor c. tendría que ver explícitamente aquí que es nulo para que proceda, que sólo pudieras asignarlo como nulo, no asignarlo. El compilador no va a tomar ninguna conjetura y decir, Oh, es no, no se limita a eso. Entonces hay que decir explícitamente que no lo es. Como estaba diciendo, en realidad podrías, si es más pequeño, vacío y no debería ser nulo, podrías tomar oxígeno. Esas son consideraciones que tienes que cumplir. Otro fácil que probablemente querrías. Déjame separarme en nuestra consola aquí mismo. Por lo que ahora ven cadena es nula, una alerta ciudadana vacía. Entonces solo veremos que no lo es. El motivo por el que querrías comparar cadenas es si quisieras comparar dos de ellas. Entonces el mismo tipo de equivalencia que probablemente aplicarías a una operación matemática puede aplicarse a dos variables. Entonces pude ver si FirstName es equivalente a LastName. Entonces toma alguna opción. Los nombres son iguales. Eso es algo que podrías hacer. También se podría ver si no son iguales. No soy igual sería exclamación igual signo, no igual a c. Los nombres no son iguales. Entonces esas son otras cosas que querrías hacer otra semana y comparar dos cadenas es ver si entonces string tiene un método de peer dot-com en él. Entonces él puede hacer políticas y las cuerdas que se quiere comparar. Entonces aquí te está mostrando que tienes algunas opciones. Tienes nueve sobrecargas. Estamos mirando sobrecargas en unas balas. Puedo pasar en una cadena número uno y el número dos, que es apellido. Y entonces va a volver, si lo son, lo siento, en realidad esto está devolviendo un entero. Así que permítanme volver a intentarlo. Así que en realidad diría que los resultados de comparación int son iguales a la computadora de cadena. Eso es entero. Entonces diciendo que un valor que es menor que 0 muestra que en realidad son válidos, eso no es 0, muestra que son diferentes. Prácticamente resultados o cualquier valor variable que obtienes de esta comparación. Si es equivalente a 0, entonces eso va a mostrar los nombres son iguales y solo puedo hacer otra cosa. Los nombres no son iguales. Entonces esta es otra forma en la que puedes comprobar que hay varias formas no puedo agotar todos los métodos aquí y te puedo asegurar a medida que avanza en tu profesional o incluso recreativo perseguimientos, vas a encontrar diferentes formas, diferentes necesidades de comparaciones de cadenas que no se pueden cubrir en un solo curso. Por lo que es práctica audible y exposición. A continuación, veamos cómo convertimos valores. Entonces cuerdas. Normalmente hablando, siempre que quieras que algo sea una cadena, le daría a la variable el tipo de datos. Um, vamos a ver, convertir, valor convertido, cadena convertida, se llama una cadena convertida, es igual a cadena de punto vacío. Sólo lo estoy inicializando para transmitir dot mt. Sepa si tengo un número que quiero como cadena. Este número podría ser un número específico que quería escribir así. O podría estar en una variable. El número Int es igual a este valor. Y yo quería que ese valor se almacenara dentro de esta variable. No puedo simplemente decir convertir esta cadena es igual a número. Ya lo hemos agotado. No podemos simplemente tomar algunos números en la policía dentro de una cuerda. Hace una palabra que nosotros, en cambio tenemos que convertirla igual. Tendremos que convertir herramienta en 32 de cadenas y ver lo que tenemos para convertir toString desde cualquier otro tipo de datos. C-sharp lo hace muy fácil porque hay un método en cada variable con el que alguna vez interactuarás con la llamada cadena. Es tan genial que incluso el mismo numeral que habrías escrito, podrías ver un punto a cadena al final de la misma. Así que con solo teclear este numeral I y luego poner puntos. Entonces cadena, en realidad lo convertirías en cadena para ti. Cualquier variable, ya sea un booleano, un número, un doble, lo que sea, también puede convertirla a una cadena. Pero solo recuerda que cuando se trata de una cadena, el signo más va a funcionar completamente diferente a cómo hubiera funcionado si fuera un número, ¿verdad? Entonces recuerda que más signos cuando estamos lidiando con la concatenación de cuerdas. Considerando que más signos cuando se trata de matemáticas, en realidad hará matemáticas reales y sumará los números. Así que ten mucho cuidado y conocimiento de eso. Pero para la norma se fue a hacer una pausa con manipulaciones de cuerdas. Puedes pasar, puedes experimentar, ver qué otros métodos hay. Otros cool como se puede ver superior e inferior, se puede hacer une. Puedes crear. Si solo escribes cadena1, presiona puntos, puedes saltar y ver los otros métodos disponibles para ti en la propia variable. En realidad puedes dejarnos decir nombre completo y yo lo veo. En realidad puedo ver dos superiores si quería que todo fuera mayúsculas. En realidad podría decir a bajar, si quisiera que todo fuera de teclas inferiores. Hay número de métodos que están ahí para ayudarte a manipular una cadena sin demasiado trabajo involucrado. Así que fui a dejarte para experimentar y explorar. 18. Funciones de manipulación en DateTime: Muy bien chicos, bienvenidos de vuelta por nuestras propias herramientas. Entonces Gondwana se trataba de cuerdas. Tenía la intención de hacer ambas cuerdas tiempo MD, pero verás que las actividades para cruzar hacia otra lección. Así que eso está bien. Podemos ponernos al día aquí. Por lo que aún no he creado el proyecto. Adelante y haz eso. Puedes seguir conmigo o golpear pausa y hacerlo por tu cuenta. Entonces por supuesto hay que ir a crear nuestro nuevo proyecto. Vamos a ir con manipulaciones de fecha y hora. Entonces le pegamos a Create. Por lo que ahora que tenemos nuestro nuevo proyecto, veamos qué tareas hay para la manipulación de datos. Aquí están las tareas que vamos a pasar. Al igual que la manipulación de cadenas y la manipulación de datos es muy profunda, muy extensa y muy situacional. Entonces hay ciertas cosas que quieres decir que nunca terminas haciendo en un futuro previsible. Y hay ciertas cosas que tal vez quieras hacer que no voy a necesariamente vistosas en este espacio-tiempo. Vamos a trabajar a través de él. Sólo voy a variar en algunas de estas cosas. Podemos tiempo adicional. Lo siento. Podemos simplemente trabajar a través de él y ver lo mejor que podemos en el sol. En primer lugar, un datetime representa un tipo de datos en C-Sharp y suena como un tipo de datos primitivo. Entonces cuando hablamos de tipos de datos primitivos, estábamos hablando de int double stream, la fecha, hora, o un tipo de datos más complejo sería una combinación de diferentes tipos de datos que amplía un poco más la funcionalidad. Cuando hablamos de fechas y hora, hablando en barcos, un tipo de datos literalmente llamado la hora. Entonces le damos un nombre. Entonces fui a llamarlo. Entonces por lo general se quiere inicializar esto. Y inicializamos esto es diciendo que sabía el tiempo, paréntesis abierto y cercano. Entonces esta es la forma en que inicializarías un objeto datetime, no variable, ¿qué objeto? Estamos entrando en el ámbito de las clases. Entonces ten en cuenta que es una especie de ese cian azulado. No estoy seguro de qué color es ese, cuál es el mismo color que es la consola. Entonces Consola es una clase. Datetime también es una clase, y vamos a hacer cadena es azul, int char, todos esos son azules, no son del mismo color. Esas no son clases. Eso es todo. Por lo que inicializa una fecha vacía hora. Ahora veamos cómo crearías uno. Entonces digamos que quería crear mi fecha de nacimiento. Pude ver que una fecha, hora o fecha de nacimiento es igual a un nuevo objeto datetime. Y entonces en realidad puedo pasar en valores que me gustaría. Entonces si miras a través, verás que tienes una serie de opciones. Aquí está el que quiero. Puedo pasar en un año entero, un mes entero, entero d, el año en que nací, digamos que nací 1980. El mes digamos que nací diciembre. Ese es el 12, ¿verdad? Y entonces hoy Nacemos el día 35. Entonces por supuesto que no hay 35. Pero no me va a dar un error aquí hasta que intente ejecutarlo y me da un problema. Así que fui a hacer una consola dot write line. Estoy tratando de imprimir fecha de nacimiento y notar que solo puedo pasarla a la línea correcta porque sí acepta objetos más complejos también tienen los tipos primitivos con los que hemos estado trabajando. Mi D OB es que solo usaré mi signo más aquí. Si traté de ejecutar esto, déjame cambiarlo a la fecha manipulaciones e intentar ejecutar. Entonces, wow, estamos viendo que tenemos estas excepciones. Una excepción es un error que suele ocurrir en nuestro programa y mata prácticamente al programa. Si estás usando Google Chrome o incluso Visual Studio y obtienes una de esas áreas, incluso Windows. Y tienes esa pantalla azul de la muerte, todo lo que está haciendo es golpear una excepción. Una excepción es una de esas flechas irreversibles que lo asisten no dio cuenta. En este caso, se está diciendo que estos no son representables a la hora de dormir los valores que presenté. Entonces sí, el área está bien, el momento está bien, pero esto no está bien. Entonces si lo pongo al 31 y lo intento de nuevo, entonces debería conseguir esa impresión adultos. Así que aviso con solo pasar en ese objeto datetime es igual a capaz de imprimir el 12 al 31 y 1980. Esa es la fecha de mi nacimiento. Muy bien. Agradable y sencillo. Ahora, y si quisiera la marca de tiempo actual para poder ver un tiempo muerto. Llamémoslo no. Quería saber cuál es el momento, ¿verdad? No. Entonces literalmente puedo ver una fecha, hora, puntos nulos que irán a tu sistema, obtiene la marca de tiempo como en el momento en que se ejecutó el código. Y entonces eso se almacenará dentro de este objeto llamado null. Entonces el momento ahora es, y luego voy a simplemente imprimir no, Déjame probar ese. Al igual que en el momento que se ejecutó ese código, la hora era la fecha, fue que el momento era que estoy usando son mi tiempo en mi sistema. Va a reflejar cuál es la hora del sistema, un incluso el diseño del formato de fecha. Todo eso se ve afectado por la configuración del sistema que tienes cuando se ejecuta la escuela. Entonces, si estás en Estándares Británicos o cuatro meses, puede parecer ligeramente diferente en términos de Usar De Montfort en lugar de mes, día, año. Y si no estás usando tiempo armado, entonces tu tiempo Vamos a ser diferente. Esas son cosas a tener en cuenta cuando se trata de imprimir tu fecha y hora. Sepa qué pasa si quisiéramos crear el DateTime a partir de una cadena. Entonces, para hacer eso, significa que habría tenido ese tipo de representación de cuerdas que acababa de imprimirse. Y estoy usando eso para ingeniero. Hice valor del tiempo. Así que puedo ver datetime, time y voy a decir que hizo de string es igual a. Puedo hacer un analizador de fecha y hora. Al igual que las cuerdas. Hay número de métodos involucrados. Pero quiere la cuerda. Qué es, ¿cuál es la corriente que se supone aparte? Entonces, ¿qué pasa si dijera una barra de 31 slash 2221? Eso debería ser el 31 de enero de 2021. Eso ve lo que quiero a partes de otros parámetros que le gustaría agregar parámetros similares para hacerle saber esa cultura en su totalidad. Déjame ver si recuerdo cómo escribir esto en la cultura variante. Por lo que hay diferentes parámetros que pones para hacerle saber. No seas específico a la cultura. Aquí. Acabo de agregar que usando declaración para éste. En realidad es una clase estática al igual que la consola o LN. Por lo que estoy diciendo cultura en su totalidad, en muy incultos. Entonces dice que la cultura es, es una independiente, es cultura independiente porque como dije, el formato a veces diferirá en función de tu cultura. Entonces con solo hacer eso, podemos hacerla independencia. No, hice algo y no lo expliqué mientras escribía toda su cultura en su totalidad. Udot vio la línea roja, lo que significa que estoy tratando de usar un método que es de una biblioteca que no está incluida. Recuerda que tenemos que agregar están usando declaraciones siempre que queramos usar métodos de, desde bibliotecas que no están incluidas ya. Entonces tuve que hacer puntos de Control. Y la sugerencia fue que puedo agregar la declaración using. Entonces al hacer eso, automáticamente se adelantó y lo agregó para mí. Sé que puedo acceder a ese método. Sólo te estoy mostrando una vez más diferentes variables. Veré la hora. El hecho de string es, simplemente imprimiré el ID de la cadena. Echemos un vistazo a esa. Está bien, así que haciendo eso realmente y verdaderamente lo tomó, lo analizó durante el día y luego realmente solo lo vuelve a publicar de nuevo en una cuerda. Muy bien, así que eso es solo un ejemplo de cómo se puede convertir de la cadena real a esa fecha y hora real. Datetime es un tipo de datos real del que hay que tener en cuenta cuando se trata especialmente de una base de datos. Porque estarías aceptando entrada de cadena de tus usuarios si tuvieran que ingresarla a través de la consola, simplemente la almacenaremos en una base de datos. Tendrías que tenerlo como fecha hora. Entonces esa es una de las otras razones por las que querrías tener cuidado. Ahora y si quisiéramos ver qué es una hora de la hora actual, ¿verdad? Entonces ya lo sé. ¿ Y si quisiera sumar una hora para ver a qué hora sería? Siempre puedo decir que no hay puntos. Tienes opciones para sumar horas. Puedes identificaciones, puedes agregar milisegundos, minutos, meses. Él puede sumar casi cualquier constructo del tiempo. Variable fecha y hora existente. Por lo que no puedo ver OA extraño. Entonces si sólo quería ver una hora a partir de ahora es una hora de null es, entonces solo puedo ver no punto añadir horas ciruela dijo No. Ya se ha puesto arriba aquí. Él sabe qué hora es, no. Y entonces va a calcular, bueno, ¿qué es una hora a partir de ahora? Podía ver una d de AHORA no es punto sumar días. Una vez más, la exploración. Entonces veamos cómo se ve eso. Cuando conseguimos eso, vemos que null es 1241900 horas. una hora del nodo sería 20. $100.1 día a partir de ahora será el 25 con la misma marca de tiempo que era. No. De acuerdo, por lo que todos esos cálculos nos son traídos cortesía de estos métodos. Ahora el siguiente en la alineación es tiempo muerto de garrapatas. Pero creo que fui a invertirlo y solo diremos garrapatas desde el momento en que tomo. O garrapatas básicamente representa el número de garrapatas del reloj desde que estaba siendo el tiempo, digamos calculado como en este momento, si digo puntos de consola, correcto. Un numeral de tiempo, más o menos si tuvieras que dar un valor numérico en ese momento, estaría en forma de Dijkstra es que podría decir que no hay garrapatas de puntos. Se obtiene el número de cosas que representan la fecha y el tiempo libre. Esta instancia, este momento, había habido tantas garrapatas en punto desde que empezamos a calcular el tiempo. Eso es más o menos lo que serían las garrapatas. Antes de probar eso toma, solo saltemos a los datos y el tiempo solamente. Por lo que sólo fechas y tiempo solo nuestros constructos a estrenar y estaño C-sharp donde hay momentos en los que no necesariamente querrías el tiempo en él. Porque aquí d en sí mismo, el nacimiento no necesariamente sería sobre el tiempo. Las fechas de nacimiento son solo el año, el mes. El derecho. Por supuesto, podrías sumar los segundos, minutos y horas si quisieras. Pero no necesariamente queremos hacer eso porque ves aquí si sigo escribiendo, empezarás a ver que no hacía hora en minutos y segundos. Entonces es entonces cuando se habla de fecha y hora. Eso sería en realidad la década de 1980, el 12 del 31 de diciembre de 1988, horas un minuto y 35 segundos. Ahí tiende a ser tan preciso. Muy bien. En realidad pude ver una fecha sólo es igual a fecha de nacimiento. Digamos que D, sólo está fuera de nacimiento. Justo para que podamos cómo algunas características distintivas, fecha de nacimiento. Y luego tomaré un objeto fecha y hora existente, esa fecha de nacimiento. Y C, solo quiero la D. Veo en efecto, me traería de vuelta justo eso en realidad. En realidad no, fecha sólo puntos de la fecha-hora. Ahí vamos. Me disculpo. Este es un constructo bastante nuevo, así que perdóname. Muy bien. Entonces dot ds realmente solo te daría sobre las fechas, ¿verdad? Déjame, déjame poner esa aquí arriba. En realidad sólo cortaría los ceros que se habrían visto después de toda la fecha y hora aquí. Muy bien. Entonces eso debería darme sobre sólo la escritura. Entonces la fecha solo construye va a simplemente devolverme d No le importa en su momento. Pero si tengo una fecha hora, puedo decir que dame la fecha solo desde fecha y hora y darte ese valor datetime. De manera similar, solo puedo ver el tiempo. Permítanme obtener la mayor cantidad de derrames justo a tiempo solamente. Y sólo voy a decir tiempo. tiempo sólo es igual a, y puedo hacer ese tiempo sólo desde el momento. Vamos a probarlo sin causa sé que va tener un tiempo real apegado a ella dado que es una marca de tiempo. Así que probemos todos esos juntos. Aquí. Estoy viendo que a pesar de que dije todavía me va a devolver el deet aún superando el componente de tiempo a la derecha. Lo que no hicimos un sprint estos, así que déjame solo sumar el sprint solamente. Permítanme añadir esto rápidamente. Y eso será d dt de nacimiento. Y luego mezcle éste. Así que déjame arreglar esto un poco. Vamos a decir que el tiempo sólo es sólo el tiempo. Después de poner en la consola. Vamos a intentarlo de nuevo. No. Una vez más, a pesar de que dije fechas de nacimiento, dame la fecha y hora completa y luego dame la fecha y hora punto d t Se puede ver que los sellos de tiempo aún están tratando de ser agregados. Pasó por la marca de tiempo, pasó por sumar una hora, y estas son las garrapatas. Entonces como en este momento, esto sea cual sea ese número, si quieres intentar llamarlo, puedes hacerme saber cuál es ese valor, cuál es el número de garrapatas que he pasado desde entonces empezamos a calcular el tiempo. Entonces la fecha sólo aquí representa sólo la fecha. Entonces esta es literalmente la fecha de nacimiento, no la fecha, la hora de nacimiento. Muy bien. Y entonces si solo quería un tiempo, es el momento para que tomó la marca de tiempo y dame justo la hora, no la fecha y la hora. Entonces esas son algunas formas en las que puedes manipular fechas y horarios d o ventaja. Te puedo asegurar una vez que te pongas funcionalidad que tiene que lidiar con Dietz y marcas de tiempo y cosas particulares en puntos particulares en el tiempo, definitivamente tendrás que convertirte en familiarizados con algunas de estas funciones. Una vez más, no puedo ver potencialmente cada uno de ellos. Hay cosas que hay que explorar, cómo experimentar. También son cosas como regresar el año. Entonces, ¿y si quisiera saber en qué día nací? Podría decir fecha de nacimiento dot d off week. Para que eso me devuelva si es 1234567, día de la semana, les dará el tiempo libre D me dará el día del año, ¿verdad? Por lo que hay 365 o 366 días en el año. ¿ Cuál día del año fue ese? Si digo que me den sólo sobre la D, es el entero de la D, ¿verdad? Así que el día libre, el día es diferente a la semana libre porque D es obvio. Sabemos que es el 31, sin embargo, el día de la semana que fue el 31 de 19981980, no necesariamente sabemos que d de débil es otro constructo. Tienes otras cosas como yo las acabo de agregar. Entonces la semana libre, día de tu tiempo fuera de la garrapata, el número de garrapatas. Cuando nací, y del tipo, ¿verdad? Entonces si solo una ejecución más solo para ver qué se imprime para todos esos valores relativos a la fecha de nacimiento. ¿ Ves eso? Yo nací. Sé que está ahí. Fue el 366º día del año, por lo que fue un año bisiesto. Por lo que puedes tener eso en cuenta al intentar calcular los años bisiestos. Se puede ver el tiempo libre el, bueno, no especificé una hora, por lo que la hora del día realmente me daría algo similar a la única hora. Se trataba de una serie de garrapatas, ¿verdad? Entonces si hiciera algunas matemáticas y le dijera Este número de garrapatas, este número de garrapatas, en realidad obtendría el número de garrapatas entre las dos veces NO, y la fecha de nacimiento. El tipo aquí está en especificado. Así que tipo de realidad se referiría a si es UTC o ESD o alguna hora local, más o menos así que no hice ninguna ubicación específica cuanto a ver la marca de tiempo o zona horaria. Esto fue tan amable no está especificado. Entonces esas son algunas ideas cuando llega a la manipulación. 19. Manejo de excepción: Hola chicos, bienvenidos de vuelta. En esta lección vamos a estar mirando el manejo de excepciones. Nos fijamos en el manejo de excepciones antes. ¿ Nos encontramos con una excepción bastante antes cuando estábamos mirando nuestros objetos datetime. Y si recuerdas, cuando creamos una sola vez esos objetos, ponemos en un valor inválido. Y luego el programa nos dio un error. Nos dio un bloque de texto que estoy seguro de que si no lo leía y te lo explicaba, no habría tenido más sentido. Eso es generalmente lo que es una excepción. Una excepción es un, un error fatal que ocurriría en tu programa. Por lo general da un error muy desagradable. Y no es necesariamente algo que querrías que tus usuarios vean. Así que acaba de retroceder en tus recuerdos y piensa cada vez que veas a Google Chrome estrellarse con un mensaje que no tiene sentido. O esa pantalla azul de la muerte en que estás en Windows o algún error que encuentras en una aplicación donde esa aplicación y te muestra un error. Y luego cuando intentas alejarte, la aplicación podría bloquearse. También hay momentos que esa aplicación no se bloquea, pero entra en un estado más de error que le permite continuar con su operación. No, eso es lo que llamamos manejo de excepciones. El error en sí es una excepción. Entonces la forma en que se trata es lo que llamamos el manejo. En C-Sharp y en la mayoría de los otros idiomas, manejo de excepciones se realiza a través de lo que llamaremos bloque try-catch. Un try o la parte de viaje de la try-catch básicamente va a probar la operación. Muy bien, así que es bueno intentar completar algo, completar una tarea. Atrapan sección de todo ese bloque, va a captar cualquier error o excepción fatal que pueda ocurrir al intentar la operación. Entonces por lo general verás, o a veces verás otro bloque llamado Finalmente, lo que significa si, ya sea el trío o el, la captura fue exitosa. Haz esto al final del intento, tal vez atrapando, haz esto. Si lo intentas y lo haces atrapado, entonces todavía haz esto. Eso es más o menos lo que encuentra que hace. Y luego otra palabra clave que normalmente ve en el manejo de excepciones es verdadera, lo que significa la ejecución del programa con el error. Muy bien, vamos a estar pasando por un pequeño ejercicio aquí donde vamos a explorar bajo qué circunstancias podría haber errores. Watts podemos hacer cuando hay errores y por qué querríamos hacer esas cosas, ¿verdad? Así que fui a empezar con una aplicación muy sencilla. Sólo voy a reutilizar una de estas operaciones que tenemos antes. Esto no lo haría y tomó prestado algún código de uno de nuestros ejemplos anteriores. Simplemente puedes golpear Pausa y replicar eso, pero solo estoy diciendo entrar primer número, almacenándolo en números de segundo num 1 durante el genoma para golpear pausa replicó eso. No, en términos generales, querrías hacer alguna forma de operación aquí. Te gustaría decir, digamos, por ejemplo, que el cociente de num1 y num2 suele ser num1 dividido por num2. Matemáticas simples, num uno dividido por num2. Entonces querrías escribir que el cociente es cualquiera que sea ese valor, los resultados son. Entonces sólo voy a concatenar eso. ¿Está bien? Entonces ese es un ejemplo típico de matemáticas. Fui a. En primer lugar, ejecutar esta operación. Y ya creé el proyecto. Por supuesto, como se puede ver, yo llamo a este manejo de excepción. Manejo de excepciones. Corremos por lo que en el primer número que es diez dividido por uno. El resultado es de diez. De acuerdo, directo. Vamos a intentarlo de nuevo. Si hago lo mismo con 100. Mi mirada a esto. En Visual Studio. Me estoy consiguiendo esta flecha amarilla. Nadie pasó por la depuración ya. Sabemos que esta flecha amarilla suele indicar en qué línea estás, sobre todo después de que hayas puesto en nuestro punto de ruptura para saber, estoy seguro de que no has codificado esta flecha amarilla estallando de su propia volición. Entonces además, no habrías visto esta X roja con el mensaje exceptuado en no manejado. Entonces aquí está diciendo que tenemos un sistema.Out divide por 0, excepción, intentó dividir por 0. Entonces hay ciertas cosas que no pueden dejar de dividir por 0 es una de ellas. Y el sistema, siendo el sistema su computadora, siendo computadoras en general, no puede manejar una operación donde se le está pidiendo dividir otro número por 0. Entonces esto es lo que causa una excepción. Y entonces este tipo de excepción es lo que bloquearía tu programa porque ves que acaba de dejar de funcionar. Y ahora estoy recibiendo este desagradable error en la consola diciendo una excepción no manejada, entonces esto significa realmente, quiero decir, probablemente no significa nada para ti como principiante. Y eso está bien. Ya he visto suficientes de estos a lo largo mi carrera para entender lo que es, viendo. De qué punto es que no querrías mostrar este bloque de texto ni nada aquí a nuestro usuario porque eso no tiene sentido para el usuario. Así que imagina cómo te sientes cuando ves Google Chrome o cualquier aplicación que sigo usando Chrome porque Sita permite novio lo que lo manejan bien, pero a veces muestran algunos errores oscuros . Creo que lo han estado haciendo mucho mejor con eso en tiempos más recientes. Pero a veces se ve ese oscuro error. Entonces esas son las excepciones que suceden dentro de la aplicación. Y es por eso que las aplicaciones tienden a decir, ¿quieres hacer ese programa de retroalimentación donde cuando se encuentran con una excepción, realmente les devuelves el mensaje. Por lo que reciben este tipo de mensaje en su correo electrónico diciendo que esto le pasó a un usuario, razón por la que obtienes actualizaciones. Ninguna aplicación es perfecta. Todos tienen flechas en algún lugar de alguna manera. Es por eso que sigues recibiendo actualizaciones porque entonces entrarían en código y lo arreglarían. Así que arreglemos este. Esta es una excepción que no contabilizamos. Vamos a arreglarlo. Para que podamos envolver eso dentro de un try-catch. Como dije, el trie representa la operación que estás intentando. Puedo decir intentar y solo escribiendo tendencia presionando Tab dos veces, va a generar todo este bloque try-catch para mí, este bloque es lo que intentaríamos. Quiero decir, no podría ser tantas líneas como necesites es la operación que estás entrenado. Porque a veces tienes 235 pasos en una operación y cualquiera de esos pasos podría arrojar una excepción. Entonces cuando lancemos una excepción, por ejemplo, o operación de división sería lo que estamos intentando. Si esto sí arroja una excepción, entonces tenemos este bloque catch. Observe que dice captura excepción. excepción es el tipo de datos general utilizado para identificar cuando se ha producido un error. Todos son solo excepciones pesar de que tendrás unas específicas. Todos están en la base de excepciones. Atrapa la excepción. Y entonces en realidad se puede almacenar esta excepción en lugar de una variable o un objeto. Por lo que podemos darle un objeto II o III huevos o llamarlo excepción con todas minúsculas fui a dejarlo como ley EX. Entonces básicamente estamos diciendo probar esta operación, coger cualquier excepción o error y almacenamos los detalles offset excepción o error dentro de esta variable llamada EAX. Entonces notarás que también tienes esta palabra clave llamada throw. Lanzable es lo que realmente mata al programa. Entonces si fuera a quitar tiro, en realidad seguirías ejecutándote. Entonces cuando lo intentamos y se atrapa la excepción, si no paso. Entonces aquí es donde probablemente enviaría un correo electrónico o lo escribiría a un registro en algún lugar donde todavía hay. Pero solo te estoy dando las ideas porque usamos aplicaciones todos los días. Estas son cosas que vemos algo ahí. Pero solo te estoy mostrando que realmente se está bajando a estos pequeños pedacitos de código. Justo aquí es donde esa aplicación te mostrará el cuadro de diálogo y decir, oye, ya sabes, te buscamos , encontramos un error. ¿ Te gustaría enviar un reporte a nuestros desarrolladores? Dices que sí, entonces lo que sí atrapan mostrándote el diálogo. Si dices que sí, entonces envía el error que fue atrapado dentro de este objeto. Eso es todo lo que está pasando. Entonces al final de la operación se imprimiría o si no podemos imprimir porque esta variable existe dentro de este ámbito. Este es un buen lugar para hablar de alcance. Si define una variable entre dos llaves rizadas, esa variable solo vive el tiempo que cuando golpea esa línea y ese corsé rizado termina. Que empapar un poco. Entonces por eso no puedo imprimir cociente fuera del try catch porque esta variable solo existe dentro de este bloque try. Para que pueda hacer lo que quiera advertir dentro de aquí. Como puedo imprimirlo dentro de la bandeja. Una vez que no puedo interactuar con ella quiere intentarlo se hace. Entonces por eso no puedo imprimir afuera del faro de la bandeja tratando de hacer inicialmente. Esas son cosas para tener en cuenta. Continuemos ahora, si digo tirar, entonces terminaría con el mismo tipo de situación donde acaba de terminar por completo la ejecución. No necesariamente quieres tirar, a menos que estés absolutamente seguro de que ese es tu efecto deseado. Si sí quieres matar al programa, cuando esas zonas en particular en concierto, entonces quieres tirar. Entonces veamos que dividir por 0 no es el tipo de error que quieres lanzar. No obstante, si atrapas cualquier otro tipo de excepción y entonces sí quieres lanzar, quieres diferentes reacciones a diferentes tipos de excepciones. Bueno, en realidad puedes tener múltiples capturas. Se puede atrapar uno específico, digamos dividido por 0 excepción. Y luego puedes decidir cuándo es una excepción dividida por 0. Quiero ver operación ilegal. Sólo digamos operación ilegal. Y entonces en realidad podría poner este mensaje de excepción dentro de su propio objeto también. Entonces llamémoslo EX. Entonces, si atrapas esta excepción, estoy almacenando no se disparó EAX dentro de este bloque catch. Y voy a imprimir el mensaje que vino con excepciones para poder ver puntos EX. Entonces vemos mensaje. Cuando haga eso por punto y coma al final de la misma, atraparé ese tipo de excepción. De lo contrario, cualquier otro tipo de excepción a través de tal vez enviar un correo electrónico al equipo de desarrollo y tirar matar al programa porque no estoy preparado para continuar después de eso. ¿ Está bien? Y entonces sólo voy a decir por fin. Entonces en el bloque finalmente podemos simplemente console.WriteLine. Sólo diré que este es el bloque por fin. Entonces eso es malo. Vamos a intentarlo de nuevo. Este es el bloque por fin. Ahí vamos. Entonces lo que queríamos hacer al final de esto es si tuvimos éxito o la llamamos división por 0. Queremos salvar esto como el bloque por fin. O digamos que este es el final del programa. Fuera del programa. Vamos a probarlo. Un manejo de excepción, ejecútalo. Y entonces voy a hacer una división adecuada. Entonces voy a hacer 105 y luego me dan dos. Y ves que este es el fin del programa. Por lo que lo intentó, no cogió excepciones y luego hizo el finalmente. Muy bien, así que intentemos eso una vez más. Y esta vez voy a tratar de conseguir esa diferencia dividida por 0 excepción. Vamos a ver que aún se saltó al final y continuar con la excepción. Entonces si digo diez divididos por 0, dirá operación ilegal colon. Esa es mi cadena estática que escribí. Muy bien. Y entonces el mensaje de punto EX sería el intento de dividir por 0. Para que faltas enteras que habríamos visto antes cuando hubiera arrojado la excepción habría sido una serie de diferentes bits de información todos envueltos en este objeto o variable llamada EAX, que encarna toda la excepción y todo lo que salió mal. Por lo que un desarrollador querría ver eso porque entonces verías todo el alcance del error y mejor poder solucionarlo. No obstante, en términos generales, obtendrás un buen mensaje que es más legible para humanos y amigable con los humanos, que es lo que querrías tal vez presentar al usuario porque entonces el usuario conseguiría una idea que está bien, eso es lo que hice mal. No obstante, no están recibiendo el shebang completo en el número de línea y todo tipo de detalles sobre el código que la propiedad no necesita nuestro no debería estar viendo, ¿verdad? Además no necesariamente quieres usuarios. No sabes quién está usando tu aplicación. No quieres que sepan necesariamente que esa línea número 20 está haciendo esto, etcétera Entonces esas son formas que puedes usar para manejar posibles errores en tu código. Porque no somos perfectos. A veces escribes código y no nos damos cuenta de que estamos haciendo cosas que podrían fallar, especialmente cuando empiezas a escribir aplicaciones más grandes que tienen otras dependencias que ícono a base de datos o en conexión a Internet. Si intentas conectarte a Internet, Internet no está encendido, entonces tienes que coger la excepción y manejarla de una manera que el usuario no sienta tu programa no esté escrito apropiadamente. 20. Arcos: Bienvenidos de vuelta chicos. En esta lección estaremos mirando matrices. Para que puedas empezar creando ese proyecto que necesitamos. Yo lo llamo arrays y luego podemos ponernos al negocio. He añadido algunos comentarios sólo sirven como guías en cuanto a lo que vamos a discutir en esta lección. Entonces una matriz representa una colección de valores. Entonces tuvimos un poco de exposición a una matriz antes cuando estábamos mirando nuestras operaciones de manipulación de cadenas. Y si recuerdan cuando les estaba mostrando la división, ahí vamos. Moodle vio esas llaves cuadradas o corchetes. Y dije que eso significaba que era una colección de bloques de cuerdas y tuvimos que navegar a través de él y voltaje en este punto porque lo discutiríamos. Bueno, ha llegado ese momento. Así que déjame simplemente cerrar todas las pestañas que no son absolutamente necesarias. Y justo al hacer clic en el medio de la pestaña, se cerrará. Así que no sé si os mostré antes que nadie. Si tienes una pestaña, abre nuestro bloque de código abierto y querías cerrarlo. Puedes hacer click en la semana XES y también hacer clic en el medio en la pestaña, se cerrará. Empecemos con nuestra definición de una matriz. Una matriz es una colección de valores. Por ejemplo, si quisiéramos recolectar, ver las calificaciones o cinco estudiantes, entonces típicamente tendríamos que terminar viendo Edens green. Uno es igual a y luego tenemos que hacer en segundo grado y grado 345, etcétera Eso no es muy eficiente. Entonces y si la clase va a diez, entonces tenemos que volver a nuestro programa y hacer diez de nuevo. El punto es que no es muy eficiente cuando tenemos que tener diferentes variables como esta para almacenar esos valores. Entonces lo que sucede es que una matriz sería una colección de valores hacia un objetivo. Si sé que quiero calificaciones, puedo crear un tipo de cobranza para calificaciones. Y luego de lo que hemos hablado, de tamaño fijo, significa que sé exactamente cuántas cuadrículas quiero. Porque si es a través de los cinco, entonces quiero una colección de cinco cuadrículas. Definir ese tipo de constructo. Primero defendería el tipo de datos para esta colección. Y en términos generales, puedes usar cualquier tipo de datos si quisieras una colección de nombres, sería una matriz de cadenas, al igual que vimos, tenemos la cadena en una manipulación de cadenas. Escucha. Podría ser un doble cobro de salarios, etcétera Así que las calificaciones es simplemente un ejemplo, int, y luego usas tus llaves cuadradas, entonces le das un nombre. Entonces esta es mi colega, Norma Ari. Estoy llamando a cuadrículas. Y entonces puedo ver z igual a nuevo int. Y luego usando llaves cuadradas, diría qué valor te daría C Visual Studio sugiriendo Maxwell, eso no es lo que quiero. No quiero que los compañeros máximos se enciendan porque eso podría estrellarse tu computadora. Pero sí dije que quiero cinco, así que voy a poner cinco punto y coma. Esto significa que va a entrar en la memoria y reservar cinco espacios para mí. Muy bien, cinco direcciones espaciales serán reservadas en memoria, todas llamadas cuadrículas. Y entonces lo que sucederá es que cada uno tendría un número asociado a ellos. Desde el espacio de las rejillas, un espacio de rejilla también. Pero entonces la numeración para las RA generalmente comienza desde 0. Así que recuerda la Guerra Mundial durante el for-loop, dijimos que partimos desde 0 y subimos a uno menos que el número de salida. Entonces, si el tamaño de la matriz es de cinco, entonces la cosa del cono será 0. Después 1234. Y eso es todo porque eso es 12345 especies en memoria. Muy bien, así que esa es una parte de las arterias que pueden desprenderse como confusas. Pero una vez que te acostumbras a entender, una vez más, el tamaño es de cinco, estamos reservando especies de fase. Pero cada uno tendrá una dirección desde 0 hasta una menos que ese número. Entonces, si veo esto como una ecuación matemática, si n es del tamaño de la matriz, entonces tu matriz tiene direcciones de 0, Tooele menos una. Ese soy yo tratando de sonar como un genio matemático justo ahí. Muy bien. Entonces cinco direcciones espaciales te darían de 0 a n menos una, que es cuatro. Eso es todo por nuestro ys. Si dijera diez, entonces sería 010 menos uno. Por lo que de 0 a nueve te daría las direcciones. Ahora lo que pasa con esto es que tengo que cubrir y cambiar el valor aquí. Es bastante fácil. Quiero decir, si lo quería más grande, hazlo 15. Si lo quiero más pequeño, que sea cinco. Lo que sea. No más especies solicito aquí. Cuando el programa se ejecute, se reservará que muchos para mí en la memoria. Ahora, hablemos de sumar valores al IRI. Entonces no dije que tendrías suscripciones son lo que llamas suscriptos. suscriptos representan estos números que representan las direcciones. Si quisiera agregar la primera cuadrícula, tendré que decir que se llama la matriz por su nombre. Luego agregue mis corchetes y luego llame a la dirección por valor. Entonces el primer grado sería 0, que es la primera dirección reservada para mí. Y entonces le daría el valor de la grilla. Entonces puedo volver a hacer eso. Actualizaciones para uno serían dos, etcétera, etcétera. Por lo que Visual Studio solo está haciendo sugerencias. Estos no son necesariamente los valores porque obviamente estos son grandes. Entonces tal vez anotaste 25, tal vez estudiantes tres al cuadrado 38, y tal vez el estudiante cuatro anotó 45. Observe esto es el Estudiante cuatro porque éste es uno, esto es dos, esto es tres, y luego esto es cuatro. A pesar de que las direcciones son 0123 y creo que hemos agotado camino arriba 12, no hay derecho a ingresar a las calificaciones para todos los estudiantes. Yo terminaría con líneas, podemos dejar que este alumno 12345, los cinco alumnos y ellos tendrán sus calificaciones. Pero puedo ver que esto es un poco tedioso. Si crees que esto es tedioso, estoy de acuerdo, porque si aumento esto a 25 y tuvieras que escribir 25 líneas como esta, no sería muy eficiente. Además, echemos un vistazo a lo que pasaría si agregara quinto grado. Por lo que si dijera cuadrículas subíndice cinco o sexto grado otro, dije que son 60. Si traté de ejecutar esta aplicación para que puedas cambiar a áreas como tu proyecto de inicio pulsa tu botón y luego mira esa excepción no manejada que acabamos de pasar excepto en el manejo. Ahora estoy recibiendo una excepción no manejada. Y este tipo de excepción es System.Out índice fuera de excepción de rango. Necesito ver en que el índice estaba fuera de los huesos de la matriz. Entonces esto básicamente me está diciendo que tienes cinco especies. Me pediste cinco especies. ¿ Por qué estás tratando de poner en un sexto valor en algo que solo tiene espacio para cinco, ese índice fuera de matriz de huesos. Básicamente viendo que estás tratando de acceder a un espacio que no existe dentro de los huesos de la matriz. Muy bien, entonces es por eso que es muy importante apreciar que los números van de 0 a n menos uno. Si n es del tamaño de la matriz, eso es muy ilegal. Conocer otra forma en la que podría haber asignado estos valores estaría en una línea como esta. Si dijera rejillas serían iguales a un nuevo int. Y luego proporcionó llaves rizadas y luego procedió a poner en estos valores. Entonces uno mod 2538, **** 4554. Y eso será un bonito trazador de líneas para asignar valores. Así que no necesitaría seis líneas. Podría haberlo hecho todo en una línea porque por supuesto, solo tengo que inicializar la matriz aquí. Vamos a comentar esto todo solo fingir que podría haber inicializado tener ese número de especies. No. Digamos que no sabemos que las calificaciones de frentes estaban escribiendo una aplicación, que probablemente va a ser la situación en la que escribir una aplicación para permitir que los usuarios nos proporcionen estas cuadrículas. Así que quiero decir, típicamente no querrías como persona de TI escribir un programa y luego hasta que uses esos todos, ven y dime qué títulos son que pueda ingresarlos por ti. No se quiere darles el poder de poder para poder entrar en las redes ellos mismos, alguien para entrar. Entonces vamos a mirar todo. Podemos escribir un programa que permita al usuario pasar e insertar cada uno de estos. Entonces vamos a usar bucles de una manera más práctica. No, No sólo una manera de ejemplo. Entonces en realidad hicimos algo así en una vez más, nuestro ejercicio de manipulación de cuerdas, donde teníamos el IRI y querías recorrer nuestra matriz. ¿ Recuerdas eso? Quería recorrer la matriz. Podemos hacer algo muy parecido a eso. Así que voy a ver para top tub int I, recuerda que es sólo mi contador es igual a 0. Por lo que aquí hay un punto muy importante de nuevo. Por qué empezamos el cono a 0, porque nuestra matriz va a empezar en 0. Ya que consideramos relevancia. A la siguiente. Es que siempre se puede ver a cualquier número. Pero entonces esto al codificar duro el número como este, no se sabe si mañana esto va a necesitar 15 o 55. Así que cuando codifica duro el número que tienes que recordar que cada vez que podrías terminar cambiando el tamaño de la matriz, tienes que cambiar el for-loop, que podrías olvidar. Todos somos humanos. Entonces es por eso que probablemente querríamos usar la longitud de punto de matriz, sea cual sea la longitud que termine siendo. Solo conseguiremos esa longitud durante el tiempo de ejecución. Y sabemos que vamos a N menos uno de esa longitud. Y luego tenemos nuestro incrementador. Saber después de haber escrito todo ese código, vamos a pedirle al usuario que ingrese las calificaciones. Así que fui a decir consola dot readline. Cada vez que el bucle da la vuelta, quiero preguntar o los usuarios ingresan avaricia. Y sólo voy a hacer consola dot write para que no lo haga, no quería línea. Y entonces puedo decir cuadrículas con el subíndice de cualquier valor de yo. Muy bien, así que deja que se empape un poco. Recuerda que inicialmente podría decir darme esta dirección exacta y puedo poner en el número. Muy bien. No, quiero que sea un poco más dinámico. No quiero codificarlo duro. Quiero que sea dinámico. Entonces ya sé que el bucle está empezando desde 0 y va a agregar menos uno de lo que sea. Por grande que sea este de Ari. Así que puedo confiar en como un, como contador para ir de 0 hasta el final de la matriz, uno por uno, solo va a ir 0, luego uno, luego dos, luego tres, luego cuatro. Vimos eso con los trabajos for-loop. Ese es el contador en los trabajos for-loop. Aquí. Sólo voy a decir, dame cuadrículas al subíndice de I. ¿Verdad? En eso me gustaría almacenar, no quiero decir convertir a int 32 y obtener el valor de la consola de usuario. Consola dot línea de lectura. Estoy viendo cada vez que pasas por cada subíndice, ve y consígueme el valor de la entrada del usuario, conviértalo en un int y almacenamiento en lugar de mi matriz. Parece bastante simple y directo, ¿no es así? Veamos cómo funcionaría eso. Entonces cuando ejecuto y salto a mi consola, ves aquí se está haciendo una pausa. Sólo me está esperando para que entre a grilla. Por lo que esto estaría entrando a la cuadrícula en grados subíndice 0, ya que es la primera ejecución. Y en el primer grado que tenía fue una mirada a lo que pasa cuando presiono Enter bucle. Se fue a la herramienta, se fue a ella incrementó el contador. Sé que está en el segundo espacio subíndice esperando en ese valor de cuadrícula. Por lo que esto será 2538 y luego 45 y luego 54. Y luego mira ahí, pidió fue 001234 especies. El IRI, si aumento esto todavía 150 hasta uno menos que el espacio del iris. Agradable y sencillo. Sepan que hemos recogido los valores. Veamos en espera, presentémoslas de nuevo al usuario. Así que estoy adivinando, espero que ya te des cuenta de que la forma más fácil de atravesar una matriz es usar un bucle for. Por lo que voy a poner un poco más de impresión alrededor de estos ejercicios. Entonces entra a todas las cuadrículas. Eso es sólo la calefacción para ver dónde entrar a todas las rejillas. Y entonces éste va a ver las calificaciones que has ingresado son las calificaciones a las que has ingresado, son tú has ingresado. Entonces vamos a imprimirlos abajo. Una vez más, avanzando el bucle FOR, justo justo para la tableta superior generó ese trozo. Vamos a ir por la longitud de la matriz. Así que el nombre de la matriz dot length. Y luego vamos a ver puntos de consola, ¿verdad? Vamos a simplemente imprimir cuadrículas. El subíndice de I. Uno va a estar llenándolo en uno sólo va a estar regurgitándolo a la pantalla. Se trata de tierras de ratas. Los veremos uno por uno. Así que déjame probar ese viejo contigo. Vemos Inter grid. Simplemente pondré algunos valores aleatorios de cuadrícula. Después de entrar en ellos tira. Estados Unidos acepta que usted ingresó a nuestro 1020 para enviar la misma orden que yo les entré. Este es el mismo orden. Están impresos porque es una colección estructurada. Sabe lo que fue primero, lo que estaba enfermo, lo que fue tercero. Si quisiera imprimir uno específico. Podría fácilmente decir consola dot write line, y C califica con un subíndice de C. Tres. Eso me dará los cuartos elementos sin importar qué, siempre será el cuarto elemento porque así es como puedo acceder fácilmente si vuelvo a ejecutar esta aplicación, no imprimiría todos los degrades. Sí, imprimirás la primera cuadrícula para entrar, luego imprimiría el hit Entrar de cuarto grado, luego el segundo grado Entrar luego sigue siendo el cuarto grado. Porque en lugar de ser dinámico con la dirección, siempre estoy mirando la dirección número tres. Muy bien, así es realmente como funcionan las matrices. Entonces cuando nos pasamos a una matrices de tamaño variable, No, esto es cuando estamos hablando de una situación en la que quizás no necesariamente sepas cuántas cuadrículas se van a ingresar. Por lo que en realidad puedo definir una arteria de tamaño in situ también. Empecemos con darle un valor predeterminado. Entonces si dije int rejillas, digamos que si sé está de acuerdo justo para que podamos cambiar el nombre. Entonces int cuadrículas finales en corchete, cuadrículas finales o sabes qué? Permítanme probar un tipo de datos diferente por lo que tenemos alguna cobertura. Probemos una cuerda esta vez. Entonces los nombres de los estudiantes de cadena es igual a saber. Recuerda, si digo nueva matriz de cadenas de cinco y bloqueándola en un tamaño. ¿ Está bien? El asunto con estos es que siempre tienen que tener una talla. No son dinámicos. Tienes otros tipos de cobranza que son dinámicos. El botón no es tan dinámico. Siempre hay que decirle el tamaño. Así que a pesar de que dije tamaño variable, no es realmente un tamaño variable en el verdadero sentido. En cambio, lo que pasaría aquí es que tendría que ver nueva cadena RE, no darle ese tamaño definido. Verás que estoy llegando allí. La línea representa la mayoría de nosotros tamaño o un inicializador de matriz. Para que pueda usar ese método de inicialización que mostré aquí. Ahora lo que sucede es que tomará su tamaño en función de qué valores son el número de valores que se ponen. Entonces puedo ver una prueba, estudiante una, etcétera Entonces en este punto, los nombres de los estudiantes es una matriz que sólo tiene un tamaño 4123. Entonces podría haber momentos en que estás inicializando una matriz y es posible que estés mirando la lista, pero no sabes el número a ver. Vale, tengo cinco aquí. Podrían ser 20, quizá 21, podrían ser 70. Para escribir algún número que no sería capaz de calcular con solo mirar la lista. Entonces aquí es donde ese tipo de declaración realmente sería útil. Entonces lo que pasaría es que solo sigas adelante y enumerarlos así. Y luego cuando el programa se ejecute, no sabría eso. Vale, tengo tres son 72 espacios aquí. Necesito 72 espacios en la memoria para mis ya llamados nombres de estudiantes. No, en lo que respecta a la interacción con este RE, es realmente el mismo principio. Será la misma impresión por toda la costura. Interactuando en la inserción de valores. De verdad y de verdad, no voy a lanzar la repetición de pasar por esos. Ya tienes estos ejemplos de código. Puedes, aquí tienes un ejercicio para que veas cómo realmente imprimirías los valores en los valores de esta RA y cómo los imprimirías. Muy bien, así que espero que te hayas llevado el reto. Si no, entonces aquí está. Si quisieras intentar y ella se detendría, no mires lo que estoy a punto explicar y pruébalo tú mismo. Pero más o menos me habría replicado eso para verlo por bucle. Por lo que aquí dije entrar todo lo que deberían ser nombres. Literalmente copié y pegué entrar todos los nombres. Y luego para cada uno, lo siento, para int I es igual a 0. Yo es menos que los nombres de los estudiantes dot length. Y luego vamos en enter name y luego los nombres de los estudiantes con un subíndice al que es igual, porque esta es una cadena, no necesito convertir nada. Por lo que sólo puedo decir consola dot, leer, línea. la misma manera cuando estoy imprimiendo, solo tengo el mismo tipo de for-loop y solo estoy haciendo una línea de lectura de consola en nombres de estudiantes con un subíndice I. Así que eso es realmente todo para matrices. Cuando volvamos vamos a estar mirando listas, que es una lista dinámica o tipo de colección aquí en C-Sharp. 21. Listas: Muy bien chicos. Entonces estamos saliendo de los talones discutiendo áreas y acabo aprender a hacer un resumen rápido para que podamos mirar hacia atrás en lo que son. Mi definición personal de una matriz es una recopilación contigua y homogénea de datos. Significado contiguo que son, están uno al lado del otro. Entonces tienes RESP S1 son como, Bueno, estoy escribiendo estas pipas uno al lado otro en memoria ahí. Muy bien, uno al lado del otro, más o menos. Sólo bajando la línea así. Entonces tus datos se almacenan en una cadena como esa, eso es contiguo. Y luego homogéneo, lo que significa que solo se puede tener un tipo de datos icono aqua para tener una matriz almacena tanto cadenas como enteros. Entonces o va a estar adentro o va a ser cadenas, etc. Es decir, lo que es una matriz no es una de las limitaciones de una matriz es que siempre tiene que saber su tamaño. Por lo que es difícil ser dinámico en una institución donde no se conoce el tamaño por adelantado. Porque tampoco lo vas a definir con un espacio lo suficientemente grande como para cubrir posiblemente cada escenario. Pero entonces vas a estar reservando 255 especies en la memoria cuando solo podrías usar diez. Eso no es muy eficiente. Eso es computadoras enteras conseguir guerra, no hay choque de tiempo bajo carga pesada de programas por decisiones que esas, la alternativa sería que no conozcas el tamaño del frente, pero basado en los datos que estás proporcionando, puedes inferir que aún no es muy eficiente porque tienes que tener todo ingresado desde el principio para luego empezar a usarla. Lo que queremos hacer ahora es mirar tipo de colección dinámica llamado lista, y eso está disponible para nosotros en C-Sharp. Entonces voy a saltar por encima, creé estos nuevos proyectos, nueva consola arriba y estoy llamando a esta lista colecciones. Por supuesto que estamos usando dotnet six y creamos esta nueva app de consola. Cuando hablamos de listas, la sintaxis va a parecer algo así. Definimos que queremos enumerar. Y luego digo que quería al menos fuera de qué tipo de datos, el tipo de datos aquí, igual que con la matriz, puede ser cualquier cosa. Puede ser al menos de cadena, puede ser una lista de enteros, etcétera Así que vamos a hacer cadenas. Y voy a llamar a éste nombres. Después fui a inicializarlo a una nueva lista de cadenas. Empezarás a ver que estamos lidiando con tipos mucho más complejos que simplemente intensos en, porque estás empezando a ver que tenemos que estar viendo igual nuevo diseño que cuando pasamos al objeto ejercicios orientados, comenzarás a apreciar por qué algunos fuera las declaraciones variables tienen que verse así en contraposición a cuando acabamos de ver cadena es igual a eso. Nos estamos poniendo un poco más complejos, pero baby steps, pero esto es todo lo que declaramos una lista. Como dije, esta es una vez más colección homogénea contigua, excepto que no se nos fija como inicialmente. Entonces, en lugar de tener una variable llamada name, estamos creando una lista de nombres potenciales. Veamos cómo agregamos valores a nuestra lista. En lugar de como áreas donde tenías que usar el punto fijo porque invariablemente puedo decir nombres con el nombre índice 0 deberían tener el valor aquí. No puedo hacer eso. Las listas te permiten hacer eso porque realmente la entrada al menos se construye sobre el constructo general que es un IRI. Entonces es como, aquí hay una palabra grande ni una extensión de una matriz. Por lo que vieron las limitaciones con el área, por lo que hicieron una extensión de la misma. Pero en la base que todavía podemos hacer ciertas cosas que te permitirían hacer. Pero luego también hicieron otras funcionalidades para ti. Entonces viste que Visual Studio me estaba sugiriendo que veo nombres dot add name, o añadir cualquier valor que pudiera agregar ese valor de mi nombre. Entonces estas son dos vías. Conoce la diferencia entre estos dos está aquí tengo que saber la dirección exacta que estoy agregando la herramienta de nombre, que no puedo saber durante tiempo de ejecución mientras la aplicación se está ejecutando. No sé si entraron 50 nombres ya son sólo diez. No lo sé. Entonces al intentar acceder a una dirección, podría encontrarme con el problema de acceder a uno que aún no existe porque es sólo como diez y estoy tratando de ponerlo en el espacio 50, o lo pondré en el espacio 50 y entonces terminar con espacios vacíos entre 10501149 estarán vacíos. Una vez más, no eficiente. Por lo que queríamos confiar en el programa, el método, lo siento, que se nos ha proporcionado llamado dot AD. Vemos nombre de lista, que es nombres, nombres, dot add. Y entonces le damos el valor, sabremos que debe ponerlo en este espacio porque este espacio es el siguiente en línea. Si uno se elimina, todo se reordena automáticamente. Por lo que en realidad puedes quitar y agregar tantas cosas como quieras. Puedo quitar a Trevor. De esto lo siento por eso. Puedo quitar problemas o de esto solo viendo al Dr. moverse dondequiera trivial o usando la lista de fechas la primera estrella en pegarse a nuestra tercera, se va a seguir adelante y quitarla y luego reordenar todo para que la dirección sea 0 a longitud menos uno estén siempre intactos. Entonces las listas son mucho más dinámicas que las matrices. Si intentas eliminar o MTO DSPS en una matriz, estamos haciendo tiempo de ejecución, simplemente no funcionará. ¿ De acuerdo? Muy bien, veamos cómo añadiríamos valores cuerpos más dinámicos. Entonces voy a escribir una pequeña consola. Y sólo voy a decir entrar nombres. ¿ Está bien? Y luego aquí voy a usar más como un bucle while. ¿ Por qué estoy usando un bucle while? Porque no sé el número de artículos que quiero. Así que no puedo ir por nuestro mostrador. Si escribí este programa para una escuela, cualquiera de los programadores no puede suponer que la escuela solo tiene 100 alumnos. Podrían tener diez y podrían tener mil. Entonces no puedo estar usando un for-loop para decir, pasar y hacer esto por eso muchas veces porque la longitud aquí va a estar determinada por el número de cosas que entra. Un bucle while sería mejor porque entonces puedo una condición por la que puedan salir de esta operación. Así que recuerda que el bucle while o incluso el bucle do-while, esos son bucles controlados por condiciones, ¿verdad? Para que pueda ver mientras nombre, digamos nombre, así que tenemos nombre de cadena. Ya puedes redefinirlo. Realmente curioso si lo habías borrado. Y vamos a inicializar el punto de cadena vacío en lugar de la cadena vacía manualmente. Y luego fui a decir mientras que el nombre no es igual al valor negativo uno. Muy bien, entonces te voy a mostrar ahora cómo escribimos programas usando bucles controlados por condición. Siempre tienes esa condición de salida y puedes escribir esto de varias maneras. Se podría escribir el nombre no es igual a negativo. También tienes que escribir este nombre punto es igual. Hay una película igual Shaun en una cuerda que pueden usar cuando se quiere compararla con otra cuerda. Está bien, no creo que haya mencionado eso con la comparación de cadenas antes. Por lo que se podría decir nombre es igual a que lo que querías cuando no lo es. Para que puedas ver, no está bien. Se puede ver equivale a false. Oh, hay tantas formas de escribir código, una vez más, la mitad para explorar. Muy bien, así que esa es una forma de escribirlo. Sólo voy a mostrarte todas las formas de escribirlo. Entonces también se puede ver no esta explicación diciendo no sólo eso no igual. Solo digo mientras esto se evalúa a falso, mientras que no es igual a negativo, luego continuar. Déjame dejar esos para codificar algunos blues ahí para tu referencia más adelante. Voy a proceder con éste. Entonces mientras que el nombre punto es igual a eso no es cierto. Eso es lo que significa ese signo de exclamación. Entonces queríamos seguir haciendo bucle. Fui a pedirle al usuario el nombre. Voy a ver consola dot escribir enter name. Y entonces voy a decir que el nombre es igual a la consola dot read line. Por lo que cargo el usuario para introducir el nombre. Y luego voy a ver nombre, puntos, Lo sentimos, nombres que no son capaces de enumerar dot add. Ahí vamos. Y estamos agregando el nombre que se ha introducido, que por supuesto es una cadena. Así que sólo puedo agregar ese nombre ya que es una cadena. Esto está diciendo saber que es un posible nulo. Entonces eso significa que si la persona no ingresó nada, realmente quieres introducir una cadena vacía o algo en el área de nombres son más bien la lista de nombres. Entonces aquí es donde voy a poner una declaración if. Entonces sepan que esto se está volviendo más complejo como nuestro programa, medida que ampliamos nuestros horizontes, estamos empezando a mirar cómo ponemos una declaración if dentro de un bucle while y cómo estamos interactuando con esa lista. Esto es lo que llamamos anidación cuando tienes una estructura de control constante dentro de otra declaración if en lugar de un rato es un anidamiento. Muy bien, puedo ver si una cadena es un nombre nulo o vacío. Entonces hagamos esto. Si no es nulo o vacío, y mira este nodo y no es igual a uno negativo. Bonito y complejo este if declaración ha conseguido, entonces podemos agregarlo. Vayamos desde arriba. Si bien nuestro nombre no es igual al negativo, que no será porque lo inicializamos a una cadena vacía. Entonces está vacío. Y esto es, este pre-check va a pasar porque no será negativo antes de que llegue aquí basado en la forma en que escribimos o programamos. Entonces voy a decir ingrese el nombre, acepte la entrada del usuario. Entonces solo si la entrada del usuario no es nula o vacía y la entrada del usuario no es igual a negativa. Esa vez deberíamos añadirlo. Eso significa que si está vacío, entonces no ejecutará esto si bloque, fallará en esa condición y luego volverá y comprobará. Pero entonces esto todavía no es negativo, por lo que volverá a entrar en el bucle run otra vez. Si entro uno negativo, entonces fallará este cheque porque ahora es negativo, por lo que aún no entrará, regresará, y luego saldrá. Muy bien, así es como usaríamos un bucle while para pedir nombres al usuario hasta que se terminen. Porque cuando haya terminado, puedo poner en negativo uno. Entonces esto es lo que llamamos los criterios de salida. Y suele ser un valor oscuro en relación con el contexto que el usuario nunca pondría por defecto, quiero decir, quien pone en un montón de nombres, entradas en uno negativo. Así que probemos eso. Entonces esto es colecciones de lista. Empecemos. Muy bien, así que aquí nos están pidiendo ingresar nombre. Por lo que voy a entrar tropo o fui a entrar a prueba. Fui a entrar a Matthew. Fui a entrar a John. Todos esos valores. Observe que simplemente sigue en marcha. Sólo voy a seguir escribiendo y presionando Enter. No lo hace ni cura. Es sólo aceptar los valores. Y entonces cuando yo personalmente negativo, es entonces cuando sale, ese es el alma. No, en realidad sería capaz de introducir valores en el usuario está satisfecho. Si lo desea, puede poner en otro pequeño aviso aquí para saber cuándo se ingresó el valor versus cuándo no se ingresó. Porque si se ingresa y se podía ver el nombre se insertó. Así que no puedo simplemente interpolar esta cadena. Entonces solo ve que el valor del nombre fue insertado, con éxito. Agregado, exitoso. Déjame ver, añadí. Muy bien. Entonces entonces el usuario obtendría algunos comentarios. Sí, pusiste en ese nombre, se agregó con éxito. O más bien lo pondrías después de que en realidad se añadiera. Se agregó con éxito. Entonces así es como llenamos nuestra lista con valores. Ahora, ¿cómo imprimimos nuestros valores de esta lista? Entonces imprimir valores en lista. Bueno, una vez más tenemos algunas opciones. Podríamos reutilizar el tiempo. Creo que se necesita mucha coordinación para usar el tiempo. Por lo que voy a saltarme el ejemplo while, pero ya tenemos una manera podríamos hacerlo en forma del for-loop. Es. Entonces recuerda que las listas se construyen sobre el constructo de una RA. En realidad podría simplemente escribir un for-loop que va de 0 a la longitud de nuestra lista. Entonces la lista se llama nombres y puedo ver nombres, pensamientos, conos. Este no tiene longitud, pero tiene conos. Conos obtiene el número de elementos. Si ves la derecha allá arriba desde Visual Studio, obtiene el número de elementos contenidos en la lista. Muy bien, así que como dije, a veces lo que quieres no se presenta necesariamente o podrías pasarlo por alto. A veces termino desplazándome hacia algunos, elimino alguna propiedad o algún método se parece a lo que quiero. Visual Studio en tiempos más recientes ha protagonizado los métodos y propiedades más utilizados, y los verás en la parte superior. A pesar de que está ordenado alfabéticamente, se verían ciertos en la parte superior. Entonces como los conos está en la parte superior porque creo que, bueno, gente suele querer saber el número de cosas en nuestra lista. Dot colon t, así que lo consigues. Está ahí para ti con, subo su longitud de punto con listas. Es pensar que los conos parecen ese efecto. Vamos de 0 al cono a menos uno. Entonces fácilmente podría decir punto de consola, escribir, imprimir, buck cada nombre llamado nombre de bytes de lista, y luego darle el subíndice de I, en realidad iterará a través de esa lista para tantos elementos como estamos entrados. Porque recuerda, abierto no lo sabía, todavía no sabemos cuántos artículos esperar. Ese es el primero que puedes hacerlo. Por lo que esto sería imprimiendo. Déjame simplemente hacer consola dot write, impresión de línea. Déjame obtener mis derechos de derrame. Impresión de nombres a través de bucle FOR. Eso es lo que hace este primero. Ahora la razón por la que estoy especificando for-loop es que también puedes usar otro tipo de bucle y uno que esté especialmente diseñado para este tipo de situación, que en realidad obtuvo una mención honorable cuando estábamos mirando declaraciones de repetición, pero no me metí en ella porque el tiempo no estaba bien. Y ese es el para cada bucle. Ahora sabemos cómo, o en ninguna parte vamos a mirar cómo el bucle para cada, ¿verdad? Entonces voy a decir consola. Simplemente duplicaré esta diapositiva aquí. Y este sería un bucle foreach. Ahora el para cada bucle, comienzas a escribir para cada uno y luego presionas Tab dos veces y genera ese stub para ti. Entonces para cada uno, y verás que está viendo var. Nos fijamos en lo que var es más adelante. Lo que voy a ser fuertemente escrito aquí y decir cadena porque es una colección de cuerdas. String. Entonces vemos ítem. ¿ Cuál es la colección? Tenemos que llamar a la colección por su nombre, la colección aquí se acabó por lo menos, que son nombres. Básicamente se dice para cada entrada de esta colección, para cada elemento en la colección de nombres, podría ser densidad más específica para cada nombre en la colección de nombres, pero no puedo hacer eso porque ya tengo una variable llamada nombre, por lo que causaría confusión. Eso está bien. Simplemente lo dejaré como artículo. Mi punto es que esto va a pasar por cualquier número de artículos que hay en esa colección, ya sea 110105 mil, pasará por cada uno. Guárdelo aquí para el tiempo de ejecución del bucle. Y luego cada vez que corre, se obtiene la nueva. Puedes hacer lo que quieras hacer con la nueva. Como dije, queríamos imprimirlas. Sólo voy a decir punto de consola, escribir línea. Y todo lo que voy a hacer es imprimir artículo. Muy bien, eso es todo lo que realmente está haciendo. Eso es un bucle para cada. El para cada bucle es perfecto. No tengo que preocuparme por los conos. No tengo que preocuparme por un criterio de salida. Todo lo que tengo que hacer es decir por cada una alguna variable en esta colección, haz lo que necesites hacer. Agradable y sencillo. Muy bien, así que echemos un vistazo a lo que esto va a ceder. Fui a introducir algunos nombres aquí, así que vemos nodo visto ********* agregado con éxito. Compré Hice una consola dot write en lugar de la consola R línea derecha. Entonces es por eso que está imprimiendo todo eso, pero creo que ya lo sabríamos. Por lo que no voy a subrayar esa. Sólo estoy introduciendo algunos nombres. Después de ingresar todos esos nombres, cuando presiono uno negativo, verás que pasó por el for-loop, impreso. Y luego pasó por el bucle para cada e imprimirlo justo arriba. A mí. El bucle foreach es simplemente mucho más fácil de formular porque se necesita un poco menos de coordinación. Pero hay situaciones en las que no necesitarías un for-loop con la lista, pero el contexto determina tu ejecución la mayoría de las veces es bueno conocer las herramientas que tienes en la mano. Pero el cuál usar cuando suele estar determinado por sus necesidades en el momento. Eso es todo de mí en el tema de las listas. Quiero que experimentes, pruebes listas con otros tipos de datos, como matrices con otros tipos de datos, y escribas otros programas para aceptar valores. Intenta escribir un programa que acepte múltiples matrices. O al menos podrías tener nombres, nombres estudiantes, y las cuadrículas. Y luego escribes un bucle para entrar a ambos, y luego los imprime todos de nuevo, te vuelves creativos y exploras. 22. Introducción a clases y objetos: Hey chicos, En esta lección vamos a empezar a discutir la programación orientada a objetos. No, ya he dicho antes que C-sharp es un lenguaje de programación orientado a objetos. Y hay algunos de ellos por ahí. Java es muy popular. Python, Ruby, C plus, plus. Todos ellos también están orientados a objetos en lenguajes de programación. Por lo que la diferencia entre lenguajes de programación orientados a objetos y otros lenguajes de programación serán los lenguajes de programación orientados a objetos nos permiten crear tipos de datos propios. Y lo hacemos a través la definición de lo que llamaremos clase. Para empezar, vamos a crear un nuevo proyecto y estamos llamando a este clases y objetos. Así que adelante y golpea Pausa, creó el proyecto. Y podemos empezar a mirar cuál es la clase. Hemos interactuado con clases a conocer Consola es una clase. Y hubiera señalado que a partir de la codificación de colores, se vería que hay clases, ¿verdad? Entonces Consola es una clase. Cuando miramos por lo menos colecciones. También miramos una clase, y esa clase se llama lista. Y yo les habría mostrado que la declaración para este tipo de objeto era ligeramente diferente de uno. Añadimos nuestro tipo de datos irregular. Simplemente diríamos que el tipo de datos es igual a lo que sea. List es en realidad un tipo de datos muy específico que se creó. Eso no es uno de los, lo que llamamos los tipos de datos primitivos. tipos de datos primitivos serían lo que habríamos usado cuando empezamos. No int string, char, bool. Todos esos son primitivos. Observe que todos son del mismo color. Preventivos porque son tan básicos como los tipos de datos pueden obtener. Pero no necesariamente proporcionan todo lo que queremos. Entonces para captar ciertos latidos de la inflamación como cuando tuvimos que hacer el programa consiguiendo todos estos bits de datos, tuvimos que tener 12345 variables para recopilar datos de una persona. Tenemos que tener nombre completo edad. Pero, ¿y si quisiera una representación de una persona? Ahí es donde entra creando tu propio tipo de datos. Entonces objeto o en programación tiene que ver con crear tus propios tipos de datos. Eres un tipo de datos ya que eres el que lo crea, puedes determinar qué son las propiedades, qué métodos pueden estar involucrados. Lo hacemos a través de la definición de lo que llamaremos clase. Una clase es un plano de lo que va a ser el objeto. El objeto es la manifestación de la clase. Entonces piénsalo como con un anfitrión. Cuando vas a estar construyendo una casa, hay que ponerla en papel, hay que esbozar, estamos viendo meta, lo grande que debe ser cada habitación si todo se hace en una representación visual, una representación 2D, ese es el plano. No obstante, cuando construyes el anfitrión, esa es la manifestación del esquema establecido. Y luego si tienes múltiples agujeros se construye a partir de ese plano, entonces tienes múltiples manifestaciones. Entonces si hiciéramos eso en OOP, el dibujo de planos sería nuestra clase, Ese es el contorno. Y entonces cada anfitrión es un objeto de la clase. Para definir una clase, parece que usamos la clase de palabra clave, luego le damos un nombre. Entonces si estoy usando persona que no es nombre de la clase, entonces abro y cierro. Mi breve dice, mis llaves rizadas saben en definir la clase que tenemos para darle propiedades. Por lo que ven Visual Studios aquí haciendo una sugerencia. Lo voy a hacer manualmente para poder explicar lo que significa cada parte. Las propiedades se refieren al, digamos los conocimientos, el objeto. Por lo que en el caso de una persona, lo que se desconoce en la persona de datos tiene ij se desconoce, por lo que es propiedad de una persona. El nombre es propiedad de la persona de ahí mismo. Abordar cada bit de información en un barco, una persona en este contexto, o un barco o lo que sea la clase, cada bit de información es de hecho hasta propiedad. Para conseguir la propiedad en primer lugar, dale un modificador de acceso. Por lo que tienes diferentes. Tienes público. Eso significa que 170 no puede escribir persona, puedo acceder a su lo que sea público. Entonces tengo que darle un tipo de datos. Entonces cadena pública, y luego algo que es de nivel accesible públicamente mayoría de las personas es su nombre. Entonces en realidad, el nombre es una muy buena sugerencia. Sé lo que es. Probablemente sea públicamente accesible acerca de una persona estaría allí cada uno porque cada uno sería más como un int. Y entonces yo diría edad. Y nota que tiene esto conseguir y sentarse corsé rizado abierto y luego obtener punto y coma, y luego sentarse, obtener punto y coma, luego poner punto y coma y luego cerrar el corsé rizado. A estos se les llama accesores. Por lo que estos permiten obtener el valor involucrado aquí se almacenan aquí. Y éste te permite sentar el valor almacenado aquí. Entonces al ver llegar a desestablecer, significa que una vez que estoy interactuando con una persona que tengo apalancamiento para obtener cuál es su nombre o sentarme cuál es su nombre, consigue cuál es su nombre, siéntate como se llama. Muy bien, entonces clase, dale un nombre. Me di cuenta con solo ver clase aquí que toma el nivel que he escrito. Null tiene el mismo color que la consola y la lista y todos los demás porque es solo esto soy yo creando mi tipo de datos. Este complejo tipo de datos está haciendo uso de tipos de datos primitivos en su interior. Una persona tiene nombre, tiene edad, podría tener otras propiedades. Antes de avanzar, lo que voy a hacer es dividir las sales. Por lo general hablando, no quieres solo almacenar el nombre, querías almacenar el nombre y quieres almacenar LastName. Observe la convención de nomenclatura también, no estoy usando letras comunes, no es si uso la letra común, funcionará. No habrá problema. Pero entonces si voy aquí y control dot Visual Studio sugiriendo que uso una letra mayúscula hasta ahora propiedades en una clase, se sugiere que use la letra mayúscula, eso es solo un estándar. No es que sólo funciona. Los bits son uno. Estamos en. El codo es solo un estándar y siempre te estoy señalando viejos estándares y mejores prácticas. Público es el accesor que me permite acceder a cualquier cosa sobre esta persona, el nombre, el apellido, y la edad. Ahora, otra cosa que quería poner a primer plano antes de que incluso comenzáramos a mirar objetos. Siempre te estoy mostrando las mejores prácticas. No necesariamente quieres tener tu clase definida dentro de otra clase. Entonces cada clase debería estar realmente en su propio archivo para contextos. Y sólo voy a colapsar todo aquí en el Explorador de soluciones. Se puede hacer eso fácilmente mediante el uso de este botón colapsar todo, simplemente colapsa todo. Y entonces puedo orientar este archivo abrir este archivo que está aquí específicamente haciendo clic en esta sincronización con documento activo. Algunos más atajos de teclado, Consejos y Trucos de Visual Studio que salen a ti bien. Aquí está nuestro archivo program.cs que funcionan están en el trabajo y este es un archivo program.cs. Significa que se trata de un archivo de clase dedicado al programa. Quiero mi propia clase, mi propio tipo de datos definido. No necesariamente quiero eso definido dentro del programa. Existe otro principio al que nos adherimos a llamar principio único, de responsabilidad única. Este principio significa básicamente que dejar que cada unidad, medida de lo práctico, tenga una sola responsabilidad. Nuestro archivo program.cs no debería tener la responsabilidad de definir nuestra clase. Me gustaría poner esto en su propia clase y forma fácil de hacer eso, gracias a Visual Studio, serían dos, mientras que fácilmente podría simplemente hacer clic derecho Agregar nuevo elemento. Entonces podrías decir que quieres un nuevo archivo de clase y él podría darle el nombre. Entonces fui a ver como persona. Y luego generará todo este bloque de código mostrándote el espacio de nombres. Entonces recuerda que el espacio de nombres es el nombre de la carpeta. Muy bien, entonces nuestro proyecto discute un objeto, así que ese es nuestro espacio de nombres. Y luego genera ese stub método con otro modificador de acceso llamado público interno significa que cualquiera puede acceder a él, pero interno significa que sólo otros archivos en lugar del mismo proyecto pueden acceda a ella. ¿ Está bien? Entonces podría hacer esto fácilmente y entonces aquí es donde tengo mi definición de clase. No, tengo esta clase definida en unos archivos completamente diferentes. Entonces si quería saber dónde cruza mi persona , necesito encontrarla. Si mi programa tuviera mil líneas de código, no tendría que peinar a través de todas ellas para encontrar la clase de persona porque solo puedo ir y encontrar persona.Nueva ECS. Y este expediente tiene una sola responsabilidad de tratar cualquier cosa relacionada con la clase de persona. Muy bien. No, yo atajo de teclado para hacer eso habría sido hacer punto de control. Y entonces en realidad te preguntaría, ¿quieres mover tipo a persona dot CSS? Entonces en realidad sugeriría que hey, puedo simplemente mover todo el código a un nuevo archivo para ti. Si no creara esta nueva clase, déjame simplemente borrarla solo para mostrarte. Sólo puedo Controlar puntos y luego mover tipo a persona dot cs. Entonces en realidad solo haría un corte y pegue para mí y crearía esta nueva fórmula de archivo. Y ahí vamos. Sólo te estoy mostrando las diferentes formas en que puedes hacer eso. Una vez más, público. Que tengan público que pueda estar en la clase. Tienes interno. Eso significa que no es público para el mundo, pero es público a cualquier cosa dentro del mismo proyecto. Entonces tendrás privado, lo que significa que necesitas varios permisos especiales para acceder a ella. E incluso utilidad Visual Studio, no se puede tener algo que sea privado aquí y todo lo demás es público. Por lo que generalmente no ves clases particulares, por lo general verás públicas e internas. Por lo que fui a dejar este como público. Y entonces todas estas propiedades también son públicas. Entonces ahora que tengo una clase definida, en cuanto a código, interactúo con ella en mi programa principal. Digamos que quería escribir un programa que me permita rellenar la información para una persona. Recuerdo que la persona podría fácilmente representar cualquier objeto y propiedades de ese objeto que quieras. Si fuera una caja, podría ser longitud, anchura, altura. Si persona que iba a ser estudiante, podría ser nombre, apellido, edad y codicia. Recuerde a toda la cabeza el problema de hacer una matriz para calificaciones en una matriz para nombres. Podríamos hacer todo dentro de un tipo de big data llamado personal o lo que sea. Una vez más, es sólo un plano. Para obtener la manifestación del plano establecido, tendríamos que hacer lo que llamamos declaración de objeto. Así que ahora voy a empezar a ver objeto en lugar de variable plus variable tiende a referirse a la manifestación del tipo de datos primitivo. Para conseguir un tipo de datos más complicado diría el nombre del tipo de datos, que es persona, llamado el nombre del objeto, que puedo decir esta persona. Aviso Puedo nombrar uno con la P capitalina y otra con un guisante común. Y eso es realmente porque creo que por ninguna parte doy cuenta de que está muy fuertemente mecanografiado y es sensible a mayúsculas, así que cápita apaciguar completamente diferente al común P. Entonces voy a decir que es igual a un nuevo instancia de la clase. Si eso se ve familiar, entonces bueno. Significa que estás prestando atención cuando hicimos nuestra lista, lista, cualquiera que sea el nombre es igual a una nueva lista y abrir y cerrar corsé. Siempre que estés lidiando con una clase que necesita ser declarada, así es como va a verse. Persona. Y entonces el nombre del objeto es igual a una nueva instancia de ese objeto. ¿ Adivina qué? También puede tener múltiples instancias de ese objeto. Para que puedas tener persona uno, persona dos. Porque la realidad es que tienes múltiples personas en el mundo. Lo que todos tenemos en común, sin embargo, las propiedades definidas, cada persona tiene un FirstName, LastName, y cada uno, si no, estoy corregido. Este es el plano general y luego estas son todas manifestaciones. Plano Offset. Conocer una forma abreviada de escribir esto en C-Sharp, Ocho hacia arriba o 900 palabras sería simplemente decir nuevo. Por lo que no tienes que escribir persona que sea igual a nueva persona otra vez, solo puedes decir que la persona es igual a persona igual y luego nueva. Eso es un buen agudo y nos dejamos trabajar con una persona por null, vamos a escribir una aplicación que va a aceptar la información sobre esta persona. Y entonces va a imprimirlo de nuevo a la pantalla que esto se dispersa. La información es Puedo ver consola dot escribir línea, enter, FirstName. Entonces estas son cosas que hemos hecho. Sabemos cómo solicitar el FirstName. Lo que antes no sabíamos es aferrarnos a almacenar todo dentro de un objeto para que pueda ver a una persona. Aviso persona es el objeto que hemos definido. Puedo ver a una persona puntos. Y cuando digo datos, tengo acceso a un montón de métodos y propiedades. Entonces, ¿cómo sé métodos diferentes a las propiedades? La primera pista es que en la inteligencia los métodos van a tener ese cubo. Entonces los inmuebles van a tener ese rango. Entonces nuestra propiedad representa una de esas variables que es yo habría definido aquí. El método representaría lo que ya miramos los métodos. Por lo que en realidad podemos hacer métodos, lo haremos en unos pocos. Entonces solo por tener lactosa, hay algunos métodos predeterminados que obtendríamos como dos cuerdas. Entonces dije antes que cada objeto en C-Sharp puede hacer aString lo que no siempre es práctico. Tiene los iguales, sí consigue tipo. Tiene un montón de métodos incorporados. Voy a empezar con las fáciles, que son las propiedades con las que sé que necesito interactuar. Entonces persona punta primero y el significado cuando creas todo este objeto, que es una colección de estas tres variables, quería establecer el primer nombre para tener el valor que viene de la consola, consola dot leer línea. Es, eso es el número uno. Entonces quiero ingresar el apellido será el mismo principio. Entonces la persona dot apellido es igual para obtener el valor de la consola. Entonces quise sacar el borde. Entonces entra. Entonces decimos persona.Nuevo borde, y luego la edad es un entero. Entonces si dijiste que necesitamos convertirnos, entonces estás absolutamente en lo correcto. Por lo que necesitamos ver convierte puntos a int 32. Déjame obtener mis derechos de ortografía a int 32. Y luego lo envolvemos entre paréntesis. Y ahí vamos. No, estoy rellenando la información para esta persona. Esto es cortesía del get sorry, fuera del set. El set me permite hacer esto. Si no vi que puedo sentarme al borde, sólo puedo conseguir la edad. Entonces voy a recibir un error cuando intenté hacer esta tarea porque ahora está diciendo que no hay, mira que es de solo lectura. No puedo estar fijando un valor en esa propiedad. Muy bien, entonces por eso consigo diez sets son importantes si la contextualidad es importante. Entonces tal vez no necesariamente quieras que alguien se sienta a la edad. Por supuesto, una vez más, solo te estoy dando el concepto. El cumplimiento es relativo a su situación. Nombre, Apellido, edad. Y podemos entrar cada uno directamente en las propiedades según lo provisto por nuestro objeto de tipo presencial. Ahora veamos otra propiedad como tal vez el salario. La mayoría de la gente mantiene sus salarios privados. Eso no es algo que puedas buscarme en google y encontrar muy fácilmente. Dentro de ese contexto, no necesariamente se vería salario público. Se vería privado, el tipo de datos doble y salario. Y en términos generales, cuando estás haciendo un privado, lo que llamaremos a esto un campo. Por lo que estas serían propiedades cuando sean públicas. Generalmente, cuando son privados, los llamas campos, solo alguna jerga para que puedas apreciar la diferencia. Por lo general hablando, con los campos, en realidad usarías aquí un subrayado para denotar que se supone que esto es privado. Entonces si solo estuvieras mirando a través del código de alguien y vieras subrayar la directriz general sería ese es el tema general detrás de ese subrayado que precede al nombre sería que es un campo, es privado. tanto que cuando se utiliza una letra mayúscula, significa que es pública. Entonces eso es sólo esa cosita que puedes cuidar. Una vez más, otra buena práctica que tener. Cuando traté de interactuar con cualquier cosa que sea privada, como por aquí, si dijera persona dot salario, nota que ni siquiera viene en la inteligencia porque C-sharp está diciendo esto es privado, así que ni siquiera se supone que te muestre eso. Si traté de acceder a ella, si traté de interrumpir con él, va a decir, muchacho, es inaccesible debido a su nivel de protección. No puedo ayudarte. Es es privado. No se puede simplemente interactuar con él así. Entonces eso es otra cosa que puedes tener en cuenta cuando se trata configuraciones privadas y públicas en tus propiedades de barra de campos. Cuando llega a nuestros campos privados, es entonces cuando empezamos a hablar de ambos métodos que se necesitarían para interactuar con ellos. Un método representaría más como un verbo. Por lo que sí dije que las propiedades serán como conocedores. Estas son cosas que están en el objeto. ¿ Qué no, qué puede hacer el objeto? Una persona puede caminar, una persona puede correr, cosas así, un auto puede conducir. Esas son cosas que puedes hacer. Esos son métodos. Cada vez que estés pensando en algo que es factible, eso probablemente necesitaría definirse como un método a diferencia de nuestra propiedad. Entonces digamos por ejemplo, queríamos poder conseguir un salario indefinido. Esos son métodos que estás obteniendo es verbo, ajuste es un verbo. Lo tenemos como privado. Necesitaríamos métodos que nos ayuden a interactuar con ella. Lo que yo haría aquí es definir un método. Ya miramos cómo definimos los métodos. Lo que probablemente no hicimos fue poner en modificadores de acceso en el método, ¿verdad? Entonces si voy a fijar el salario, eso significa que no necesito devolver nada. Quisiera algo así como un método vacío. No quiero llamarlo set apio. Apio. Tu trabajo es darle valor al campo privado. Digamos que voy a ponerlo en 100. Una vez que se llame a este método, salario obtendrá el valor de 100. ¿ Cómo recupero este valor? Bueno, puedo hacer otro, mientras que el público obtiene salario. Y esta vez voy a hacer que ese valor regrese porque quiero recuperar cuál es el salario, entonces todo lo que tendré que hacer es devolver salario. Muy bien. Mírelo, no hay campo privado. Y luego tenemos métodos para interactuar con el campo privado. Tenemos uno para establecer su valor. No necesito hacer nada. No necesito devolver nada después de establecer el valor, así que solo voy a evitar. No obstante, no estés aquí, voy a estar sentada. Lo siento. Voy a estar recuperándolo. Entonces si lo estoy recuperando, eso significa que necesita devolverlo. Y si lo devuelve al campamento antes de la prueba para ser el tipo de datos fuera lo que esté regresando, que es un doble. Muy bien, solo mostrándote cómo está todo conectado. Entonces, debido a que estos son dos métodos públicos, puedo decir fácilmente persona dot, y luego mirar este salario nulo establecido en la lista. Obtiene salarios también enumerados allí. Son un público, por lo que son visibles. Y dos, son métodos. Observe el cubo. De acuerdo, sí describí que el cubo representa que es un mito. Veamos si lo llamo se sienta sueldo aquí. Entonces quise imprimir qué es ese salario después. Sólo voy a ver el salario es. Y entonces sólo voy a hacer interpolación y luego mirar a la segunda persona, punto conseguir salario. Para nosotros no conseguir salario se va a recuperar lo es el salario y eso se va a imprimir en la consola dot write line. Muy bien, entonces lo que podemos hacer es probar la sal. Antes de probar me dijo aunque voy a crear algunas otras líneas. Entonces fui a ver un nombre, apellido, y la edad es. Y lo que vamos a hacer es imprimir las propiedades. Entonces persona dot nombre, persona, pensamiento, apellido, persona pensada edad. Y luego estas son propiedades. Y entonces este es un método, pero todos ellos están relacionados con la misma persona porque estamos ingresando la información para una persona. Entonces voy a cambiar mi proyecto de startup que causa un objeto. Y luego vamos a tomar éste para dar un giro rápido. Cuando el programa se ejecute con el nombre, usaré mi propio nombre, apellido, edad, digamos que tenía 45 años. Así que nadie va a imprimir nuevo todo sobre esa persona. Nombre, apellido es Susie, todo está siendo almacenado en el salario se estableció en un 100 cortesía de nuestro método. Pero esa no es la realidad porque estamos codificando duro el valor, ¿verdad? Entonces mi salario no es tus centros. Entonces cuando te están ingresando como persona con tu nombre, necesitan ingresar tu salario. Lo que puedo hacer, simplemente es uno crea una variable local a la que voy a llamar salario aquí en el programa principal. Entonces voy a aceptar entradas desde la consola. Cuando consigo este salario de bajo costo, ese es el salario que quiero usar el SETT, el salario de la persona. Nos fijamos en el uso de parámetros en nuestros métodos. Voy a modificar el método salarial establecido. Y ya había prensa F12. Así que cuando él hubiera querido saltar a un método, se quiere navegar a este método, simplemente haga clic en él, presione F 12 en el teclado y salta a la definición. Entonces ese es otro atajo de teclado para ti. Entonces a partir de aquí, puedo decirle a sueldo establecido que acepte un parámetro llamado salario. Y usaremos ese valor que está entrando para sentar el campo privado. Muy bien, entonces eso significa que no, cuando estoy llamando set salary, se conoce como una flecha porque está esperando un valor para que pueda darle el salario que fue aceptado como entrada de usuario. Por lo que las entradas de los usuarios, salario, llamamos a una persona dot set sueldo, ascienden sobre ese valor que acaba de llegar. Luego dentro de ese método donde usar ese valor para establecer los campos privados. Entonces cada vez que pedimos el salario, es entonces cuando recuperamos lo que se aceptó por parte del usuario. Eso está lleno, tendrías que interactuar con campos privados. Otra cosa que te voy a mostrar es tal vez conseguir el nombre completo. Va retina donde conseguir FirstName, última cosa. ¿ Y si no quería imprimir FirstName, LastName? Y si quisiera ver tu nombre completo es, tu edad es, y tu salario es, correcto. Por lo que puedo poner fácilmente en otro método. Depende de mí así que puedo poner en un método de retorno de valor de tipo string que dice obtener nombre completo, obtener nombre completo. Esto no necesita ningún parámetro porque estará interactuando con propiedades que ya están dentro de la clase. Por lo que en realidad puedo simplemente decirle que devuelva una versión concatenada que veremos. Voy a interpolar una cadena muestra FirstName y LastName. Muy bien, entonces nombre y apellido, y eso es más fácil, nombre completo, y eso es lo que quiero que regreses. Así que en cualquier momento que alguien llame obtener nombre completo, debería regresar. Eso. Un bloque de cadena con el nombre y apellido incluidos. Saber en lugar de decir FirstName y LastName es, puedo venir en estas líneas. Entonces solo voy a crear uno para ver nombre completo es obtener nombre completo. Mira a esa persona no consigue nombre foo. La edad es que te voy a dar un reto en este punto por edad, si quisieras saber qué nació el año a persona en lugar de solo el cada uno. Se puede tomar la edad. Y luego se puede crear un método que diga llegar al año de nacimiento y dejar que regrese el año de nacimiento e imprimirlo de nuevo a la pantalla. Cuando hablamos de clases, objetos, y encapsulación, sí lo vi, explicaría qué es la encapsulación. Agregación. Uno, la clase es el plano. Desde esta perspectiva, cualquiera que esté mirando esto, no sabe mucho de persona. Sólo ven a persona cuando están interactuando con el objeto de persona tipo. Pueden interactuar con ciertas cosas. No necesariamente entienden cómo funciona. Eso es lo que llamamos encapsulación porque el funcionamiento interno de los salarios realmente fijados, en realidad se recupera. No saben que otros ver es conseguir salario. ¿ Se hicieron simples yo quería salario. Acabo de llamar al cielo. Obtiene salario. Si quisiera el nombre completo, solo llamaré a obtener nombre completo. No conocen el hardware que en realidad está sucediendo detrás de aquí. Por mucho que sea o suponga que sea, la persona que interactúa con el objeto no lo sabe. En el plano es donde se define toda la funcionalidad, pero el uso real de la misma se supone que es lo más simple posible para la persona que lo usa. Y luego más allá de eso, nadie hablaría de agregación. Significa que dentro de esta clase compleja, hemos agregado una serie de propiedades y operaciones que pueden hacer. Entonces desde esta perspectiva, en unas pocas líneas de código, pueden lograr tanto sin darse cuenta cuántas líneas de código habrían ido en nuestra agregada para maquillarlo. Vamos a pasar por otra prueba con esto para que podamos ver si obtenemos por el nombre completo y el salario de nuevo. Fui a entrar por la edad de 58 años de VOR William. Y luego cuando presiono Enter, creo que es pedir al más sutil que no puse en el propenso por el salario. Así que déjame ponerte en 2 mil. Y luego Nodo ver tu nombre completo es el nombre completo tal y como nos da esa cadena. Y aquí estoy viendo dos espacios. Muy bien, así que eso es algo que podríamos mirar. Creo que puse un espacio después de uno de ellos. Por eso estamos recibiendo el nombre completo. Estamos consiguiendo por la edad y nos estamos poniendo buck. Ese es el valor salarial que tomamos vía insumos. Entonces esa es una rápida introducción a la programación orientada a objetos. Una vez más, la práctica hace permanente. Así que adelante y consigue alguna práctica tratando de averiguar cómo se calcularía el año de nacimiento de la persona en función de la edad que se proporcionó. 23. Sobrecarga de métodos: Hola chicos, bienvenidos de vuelta. Seguimos en nuestro viaje con programación orientada a objetos. Y solo quería mencionar un concepto rápido llamado sobrecarga de métodos. Lo que habría notado hasta ahora en nuestras interacciones con costo es incluso antes de empezar a crear la nuestra propia, fue el hecho de que en realidad podríamos escribir o acceder a diferentes variaciones del mismo método. Esta mirada a la clase de consola. Consola. Dot escribir línea. Ninguna línea de escritura de puntos tiene 17 sobrecargas. Entonces una sobrecarga significa que tienes diferentes formas de ir a la universidad. Podrías llamarlo vacío, lo que significa parámetros nulos. Lo llamarías con el parámetro bull, con un parámetro char. Y creo que me desplazaría y te mostraría todas las posibilidades. Esto es en realidad un método de sobrecarga sucediendo justo aquí porque es el mismo método con el mismo nombre lo vería volver tipo. Va a operar ligeramente diferente en función del valor que se está pasando aquí, ya sea una cadena o un gráfico completo, etc. Una vez más, encapsulación. No lo sabes, la línea correcta está funcionando. Solo conocerás su clase interna y es un método al que llamas y le das un valor y esperas que eso va a imprimir algo a la pantalla. No sabes qué hacer para convertir a los indios o la cadena o la W aquí en la cadena son qué probarla con corriente irregular. Y todas esas cosas, ¿verdad? No lo sabes. Al final del método la sobrecarga puede ser muy importante cuando se quiere dar a sus usuarios opsins para llevar a cabo el mismo tipo de operación o diferentes opciones con el mismo nombre de método. Alguien para mantener este simple, pero es simplemente suficiente concepto que con un ejemplo deberías poder cogerte fácilmente, ¿verdad? Así que veamos, estamos recibiendo aquí el nombre completo de la persona. Quería sobrecargarlo para potencialmente obtener su segundo nombre también. Por lo que quiero una opción donde pueda poner en el segundo nombre y obtener el nombre completo con el segundo nombre incluido. No hay propiedad en persona para el segundo nombre. Entonces voy a hacer esto desde cero, ¿verdad? Entonces digamos que tengo una variable de cadena, voy a llamar segundo nombre. Voy a inicializarlo la cadena dot mt. Voy a avisar. Por lo que antes no añadí la pronta para el salario. Sólo estoy sureña. Consigue mi gasto justo ahí vamos. Ingresa el salario. Entonces voy a pedir el segundo nombre. Así que fui a decir consola entrar segundo nombre. Y luego ancho para las entradas de segundo nombre desde nuestra consola, dot readline. Una vez que se ponga ese segundo nombre, si está presente, me gustaría obtener el nombre completo personal con el segundo nombre incluido. De lo contrario, sólo dame el nombre completo regular. Voy a usar una declaración if y fui a tomar una decisión rápida. Has visto algo como esto. Si el punto de cadena no es nulo o vacío. Entonces si no hay segundo nombre presente, lo que significa que el usuario no puso nada para esta entrada. Entonces imprimiré el nombre completo regular. De lo contrario. Me gustaría una opción donde pueda darle el pleno el segundo nombre y que se incluya en el nombre completo que se imprime. Ahora, fíjate que éste no toma parámetros. Así es como lo definimos. Éste, estoy pasando el parámetro y me está dando un error. ¿Por qué? Porque dice que no hay sobrecarga para ese método toma un argumento diciendo que veo que estás llamando a este método, pero no puedo encontrar una definición de método coincidente que se supone que tome ninguna parámetros en absoluto. Entonces depende de mí no, ir a la clase y asegurarme de que exista. Por lo que sólo puedo ir a persona, simplemente haga clic en él, presione F 12. Y luego puedo crear otro método que pueda hacer una String pública, darle el mismo nombre, obtener nombre completo. Pero esta vez va a tomar un parámetro de cadena llamado segundo nombre. ¿ Ves eso? Éste, no, puedo hacer que devuelva el mismo tipo de cuerda. Pero voy a incluir el oído medio en medio de esa cuerda, ¿verdad? Entonces, una vez más, ese usuario nunca sabrá que si la diferencia fue tan complicada o tan simple. Simplemente saben que tienen una opción para obtener el nombre completo. Y tienen opción de obtener el nombre completo con un segundo nombre incluido. Sepa que tengo estas dos versiones de prácticamente el mismo método. Diga método por el nombre. Si miro aquí atrás, ese error se ha ido. Muy bien, entonces una vez que doy un segundo nombre y fui a hacer un cheque para ver qué opción debo llamarlos? ¿ Debo llamar a persona.Nuevo setFullName aquí o debo llamar al que tiene el segundo nombre? Prisiones de segundo nombre. Muy bien. Pongámoslo a prueba rápidamente. Consigue el nombre, el apellido, consigue la edad, consigue el salario, luego el segundo nombre. Si no pongo nada allí, note que imprime todo mi nombre y apellido. Vamos a intentarlo de nuevo. Voy a correr otra vez y luego ver lo mismo. Edad, salario. Entonces sí tengo un segundo nombre único. Es un griego, significa reservorio, significa pan de vida. En realidad. Lo siento. Es griego, significa pan de vida. Y cuando presenté en las entradas, entonces obtengo esa opción para VOR, nuestros dedos de los pies Williams, ¿verdad? Si quieres asegurarte, hagamos una pequeña sesión de depuración. Alguien que ponga nuestros puntos de quiebre en cualquiera de ellos solo para asegurarse de que va a llamar al carro uno cuando lo esperamos. Esta es otra forma. Si lo estabas haciendo en cualquier lugar y obteniendo la salida que esperabas, siéntete libre de usar tus puntos de ruptura. Así que para siempre Williams o simplemente un poco acortado para superar esto rápidamente, sin segundo nombre. Presiona Enter y OTC llamó, obtén el nombre completo con todo el segundo nombre porque no proporcioné un segundo nombre, solo presiono enter para que no estuviera vacío. Y no es llamar a este método calentar ese punto de ruptura. Entonces en ese punto, FirstName es cierto para el apellido es Will. Si pongo el cursor sobre el segundo nombre, no hay nada ahí. Ni siquiera me mostrará nada porque no hay nada ahí. No fue sentarse. Correcto. Entonces si presiono F5 para dejarlo continuar con la ejecución y presiono enter en la consola a F3 top. Entonces verás Es No, estoy imprimiendo como se esperaba. Y luego justo de la misma manera. Si pongo en prueba el apio de usuario y luego un segundo nombre, entonces va a golpear éste donde está pasando por encima de ese segundo nombre. Ese es un ejemplo muy simple de sobrecarga de métodos. Como dije, es algo que hemos estado haciendo desde el get-go con el humedal console.log y algunos otros métodos. Así es como puedes implementarlo dentro de tu propia clase. 24. Clases estáticas y miembros de clases estáticas: Muy bien chicos, Así que estamos avanzando y vamos a estar mirando otra categoría de tipos de clase. Y a éste se le llama estática. El gas estático es uno que no se puede instanciar. Entonces cuando hablamos de instanciación, significa esto cuando creamos un objeto de una clase. Muy bien, déjame, debería haber hecho esto antes, así que déjame mostrarte, darte un código o referencia para sostener. También se podría hacer. Muy bien, Entonces, ¿qué dices nueva o dices persona nueva? Y más adelante estaremos viendo otra palabra clave que podemos usar, el oscurecido un tipo de datos. Pero centrémonos en las clases estáticas no podamos instanciar una nueva instancia de la clase. Entonces hemos instanciado nuestra propia clase. Tenemos que instanciar lista y habríamos tenido que instanciar hasta cierto punto los RA cuando hicimos arrays o incluso el tiempo muerto para que esas sean todas clases. Datetime es igual a fecha y hora nueva. Teníamos que hacer eso antes. Una clase estática sería más como consola. ¿ Está bien? Entonces consola en realidad nos da métodos bien estáticos más bien. Eso significa que no tenemos que ver consola crea un objeto es igual a una nueva instancia de consola para luego acceder a la línea derecha. Porque no hay manera de que pudiera decir persona con una P B mayúscula en el tipo de clase dot. Eso no me da nada. No me permite acceder a ninguna de las propiedades sin instanciarla, lo cual es crear el objeto o la manifestación del plano. Y luego a través del plano, a través de la manifestación en más bien o en el objeto, puedo acceder a las propiedades y métodos. Entonces vamos a ver la creación de una clase estática y cómo podría ser útil. La clase estática se usa generalmente como clase de utilidad, así que voy a crear un nuevo archivo de clase. Por lo que sólo voy a llamar directamente a nuestras clases y objetos proyecto ir a Agregar nuevo elemento. Y en realidad se puede notar que tiene unas cotizaciones cortas aquí que acaba de decir clase, concedido, es casi lo mismo. Él va a sacar la misma ventana de diálogo y simplemente enfocarse en clase para ti automáticamente. Digamos, yo llamo a esta fecha de clase util util. Fecha utils. No hay día para hasta. Te va a dar el nuevo expediente, me va a dar todas las declaraciones de uso. Y una vez más, se trata de un archivo tradicional de C-Sharp. En dotnet seis sobre tenemos acceso a archivos mínimos donde no tenemos el espacio de nombres y todos esos tirantes rizados y todas las declaraciones de uso. Por adelantado. Siempre puedes limpiarlos manteniendo presionada Control y pulsando tecla que E. Y eliminará todo lo que no sea necesario de tus archivos. Por lo que no necesitamos todos estos usando declaraciones Clave de control. A veces solo querías archivar para mostrarte lo que necesitas ver, que es toda la filosofía de seis casi ha terminado ****** con incluso estos bloques de código donde el espacio de nombres puedo eliminar esos tirantes rizados y solo pongan un punto y coma. C-sharp seis sabrá automáticamente que este es el espacio de nombres que gobierna todo el archivo. Entonces no necesito todas esas brisas. Sepa que estamos profundizando más en viejo PM mostrándote pequeñas cosas sobre sostener el acorde se presenta y cómo puedes interactuar con él. En realidad se podría hacer esto en lata C-Sharp, concedido, la forma en que era antes de que funcionara perfecto. Quiero decir, Visual Studio te lo dio por lo que debe funcionar que también, acuerdo, vamos a centrarnos en nuestra clase, clase interna, y la estamos llamando D22. Sepa qué pasa si quisiera calcular quería un método para calcular la deuda con base en el valor del año. Esta clase de utilidad va a tener un montón de métodos que sólo hacen las cosas por mí. Tan público. Año de nacimiento. Y entonces este año de clase de nacimiento, lo siento, se supone que el método devuelva un int público al año de nacimiento. Tomemos entero, año o entero cada uno. Empecemos con eso. De acuerdo, así que dada la edad, quiero volver, ¿cuál es tu probabilidad es el año de nacimiento? En este método, voy a hacer algún cálculo. Sólo voy a devolver la hora. Fecha, hora punto no, año menos h tan fácilmente que es. Entonces datetime dot know consigue la marca de tiempo actual, consígueme el año. Fuera del núcleo en marca de tiempo y luego menos la edad de ella y regresa eso. Esa es una manera fácil de conocer tu año de nacimiento. Bonita proyección al menos, ¿verdad? Probemos con otro. ¿Y si quisiera una sobrecarga para eso? Eso me permitió también regresar un año de nacimiento. Por lo que todavía le voy a dar el mismo nombre sobrecargando. Pero esta vez me gustaría llevarme tu fecha de nacimiento. Fecha de nacimiento es la propiedad, es el parámetro que quiero. Entonces lo que puedo decir es si está bien, déjame ver lo que Visual Studio tiene para mí. Si la fecha de nacimiento que me diste equivale a nula, entonces regresa 0 o tilapia. De lo contrario, devuelva el año duro, tiempo, no, año menos fecha de nacimiento año. Oh Dios mío. Eso es precioso, pero eso no es realmente lo que quiero. Quiero más. Quería simplemente darte un buck el año porque dije año de nacimiento. Entonces si me das la hora de nacer, entonces solo volveré. ¿ Cuál es tu año de nacimiento correcto? No obstante, solo les estoy mostrando estos son métodos que los puntos focales no son realmente los métodos. Solo estoy haciendo un montón de métodos en esta clase util porque solo te estoy mostrando que, en términos generales, las clases de estudio son como clases util, ¿verdad? Por lo que éste determinaría tu edad en función de una fecha de nacimiento. Y entonces solo volveré a la sugerencia original. Estamos muertos no. Año menos la fecha de nacimiento, año que usted proporcionó. Las clases de utilidad saben sobre unas circunstancias normales para empezar a interactuar con estos métodos, métodos utilidad, lo siento, interactuar con ellos. Si quisiera usarlos en lugar de mi program.cs, tendría que entrar aquí y decir datetime D2 till crea un nuevo objeto de fecha utils. Así que fíjate ahora me está diciendo que no se pudo encontrar. Esto se debe a que el espacio de nombres se definió por encima del archivo y ninguna otra clase en este proyecto en particular tiene ese espacio de nombres. El espacio de nombres básicamente es una declaración a los archivos fuera de la dirección. Si esa dirección no está incluida, entonces la usa. Solución simple, solo voy a eliminar el espacio de nombres. No es absolutamente necesario, al menos no en C-Sharp inquilino en ella busca saber que se retira. Tengo acceso. Sepa si necesitaba calcular algo, tengo que decir punto objeto. Entonces podría acceder a todos estos métodos. En consecuencia. Año de nacimiento versus la edad versus lo que era el otro año de nacimiento estaba sobrecargado. Lo siento. Acabo de recordar que estaba sobrecargado, así que sepan que está sobrecargado. En inteligencia aquí vamos a C más una sobrecarga. me puedas dar la fechaHora, fecha de nacimiento, o simplemente puedes darme la edad de la persona. ¿ Está bien? No, das estáticas elimina la necesidad de esta instanciación. Entonces para cumplir con esta estática, paso número uno es que estás escribiendo la palabra estática en la sección modificador de acceso. Si la clase es estática, entonces todo lo que está en la clase debe estar estudiando votado de esa manera. La clase es estática, entonces los métodos tienen que llevar también ese modificador de acceso, dejando que todo el compilador, todo el programa sepa que son estáticos. Sin embargo, puedes tener métodos estáticos dentro de nuestra clase regular. Muy bien, veamos, saber cuál sería la interacción si quisiera averiguarlo, vale, Aviso vendido desde que lo hace estático, esto no es ilegal. No puedo instanciar. Tipo estático. No se puede declarar una variable de tipo estático. Ya no puedo hacer eso. En cambio, tendré que hacer es llamar a esta clase. Lo hacen hasta entonces solo digo puntos. No lo hice, no puedo acceder a ningún método que esté en ese vestido. Mucha consola local funciona donde acaba de decir console.log. Y luego accedo al método que podría imprimir fácilmente. La edad es eso. Y luego digamos un año de nacimiento. Y entonces solo digo puntos D22, Dots , año de nacimiento. Y entonces, ¿en qué estoy pasando? No hablo de fechas de nacimiento nulo, pero de lo que sí tengo esto en mis sobrecargas. Yo sí tengo una ventaja para que te pueda dar la edad. Ok. Por lo que puedo decir persona.Nueva era. Existe la edad de una persona necesita solo cuál es su año de nacimiento. Eso es básicamente todo. Como dije, generalmente se usa para utilidades. Entonces cualquier operación rápida son operaciones que podrías encontrarte repitiendo varias veces. Simplemente puedes crear un grado de clase estática el método, esos, esa operación, a veces es tan simple como estoy uniendo cadenas. Podría ser recortar cuerdas. Podría estar convirtiendo entre fecha y hora y enteros, cosas así. Podría ser una clase de matemáticas donde se quiere encontrar la raíz, raíz cuadrada de las cosas. Acabas de crear una clase para eso. Muy bien. Probemos esto y veamos qué tan bien funciona. Muy bien, entonces llenaré la guerra social. Williams, de 5070 años en apio segundo nombre. No necesitamos eso. Y luego verás aquí nombre completo es que la edad es ese año de nacimiento es 1965. Por lo que tomó esa edad, hizo el cálculo como definimos, y devolver ese valor. Eso es básicamente todo. Entonces es así como usarías una clase estática en una situación muy práctica. Y a lo largo de tu viaje con C-Sharp y programación orientada a objetos, vas a encontrar muchas clases estáticas. Entonces es bueno entender cómo se construyen, cómo se usan en general, y cuándo no usarlos también. 25. Herencia con clases e interfaz: Muy bien chicos, bienvenidos de nuevo. En esta lección vamos a estar hablando de herencia. Por lo que todavía estamos mirando la programación orientada a objetos. Los conceptos inciertos son al menos conceptos clave para prepararte para escribir una aplicación básica. Y para la segunda parte de este curso, donde todo se centra en la programación orientada a objetos. Donde fuimos a discutir la herencia creando un proyecto completamente nuevo, un nuevo proyecto, y consola C-Sharp sobre dónde llamar a este una herencia. Herencia. Entonces la herencia tiene que ver exactamente con lo que la palabra te sugiere como ser humano cuando habla de herencia, significa recibir algo de otra fuente. Algunas personas son extremadamente ricas por su herencia, que es algo que recibieron de su predecesor. La herencia tiene que ver con esquilar propiedades con alguien más, esquilar mis cosas con alguien más. En cuanto a la programación orientada a objetos en este concepto, significa que no necesariamente tenemos repetir ciertas cosas a través de tipos que pura atributos comunes. Por lo que basta hablando, permítanme mostrarles algunos ejemplos prácticos. Alguien para crear nueva clase o al menos alguien que escriba las clases aquí y luego las trasladaremos a su antiguo archivo. Entonces digamos que tenemos una clase a la que podemos llamarla forma 3D. Empieza así que esta forma de nube, ¿verdad? Una forma. En nuestra definición de forma, vamos a tener al menos altura y anchura. Digamos que tenemos una propiedad. Entonces un atajo de teclado para escribir nuestra propiedad es que puedes escribir prop y luego presionar Tab dos veces y genera ese stub para ti. Podemos tener doble altura con una H mayúscula, por supuesto. Después podemos presionar Enter al final de llenar eso. Y luego ir a la siguiente línea y decir pestaña de propaganda, pestaña y luego doble. Después presiona Tab para pasar del W2, el nombre de la propiedad, poner eso en. Entonces llamemos a esto una longitud. Entonces presiona Enter y eso es todo, ¿verdad? Típicamente, la forma tendrá al menos la altura y la longitud. No, tienes variaciones de la forma porque los triángulos probablemente tendrían tu altura y longitud dentro de ellos también tendrían, Eso es lo que llamamos la hipotenusa, por así decirlo, ¿verdad? Cubo. Cuboide tendría altura, tendría longitud, y también tendría amplitud? O tendríamos una clase base llamada hierba obesa de tipo forma. Tienes un modificador de acceso llamado obstruir. Esto significa que no puedo, lo siento, esto tiene que venir antes de la clase de palabras. Forma de clase abstracta significa que sí es una clase. Sí, existe pero no se puede instanciarla. Así que recuerda, al igual que con lo estático, no podemos ver a las ovejas nueva forma. No podemos hacer eso. Eso es ilegal porque abstracto no puede hacer eso. Al final de esa operación, cuando hayamos definido nuestra clase de forma, voy a Controlar puntos y moverla a su propio archivo. Así mover rasurado dot csv su propio archivo. Por lo que estamos en forma de punto cs. Noah quiere otras clases que van a compartir propiedades de una forma para que pueda crear fácilmente otra clase, clase pública, y llamaré a este cubo. Para heredar, solo necesito ver dos puntos y luego darle el nombre de clase del que se está heredando viendo el cubo de la clase pública colon. Es heredar de la forma. Ahora esto se queja por las inconsistencias con el, con los modificadores de acceso de accesibilidad. Entonces esto es público, mientras que la forma no es pública. Entonces si me quito al público aquí de lo que debería estar bien. Ahí vamos. Si los hiciera públicos a ambos, debería estar bien. Cubo de clase, forma de colon. Entonces aquí puedo definir mis propias propiedades. Entonces el cubo o una, ya tenemos alto para tener ya longitud. Entonces aquí sólo voy a darle un ancho. Conoce lo que no necesito ir y definir ninguna propiedad específica. Así que incluso si hubiera intentado definir C doble altura de nuevo. C-sharp lo va a subrayar en verde. Y avísame que bien, ya tienes en forma de altura de punto. Así que al definir la altura aquí, estás anulando la original. Siendo redundante, te estás repitiendo. No tengo que hacer eso. Si fuera a instanciar Q, Digamos que digo cubo. Cubo es igual a nu cube. Siempre puedo. Permítanme trasladar esto a su propio expediente. Así Controla puntos y luego muévete al cubo dot CS. Sí, me gustaría moverlo. Ahí vamos. Entonces ahora tengo una instancia de cubo. Puedo ver puntos de cubo. Puedo obtener acceso a la longitud de la herramienta, que es cortesía de forma. No puedo ponerme tóxico. Es el ancho que acabo de definir, y puede obtener acceso a la altura, que es también actualmente ver cómo forma, es decir, qué permite la herencia. Me permite definir una fuente de propiedades comunes y luego reutilizar esa fuente a través de múltiples lugares. En. El motivo por el que hice este abstracto es que no sé cuál es la forma. Aunque yo dijera que la oveja es igual a nueva forma, ¿cuál es el tipo de barco? ¿ Es el círculo? ¿Es un cubo? El Crc no puede crear instancias de un tipo abstracto de oveja. Es abstracto. Entonces el concepto de una forma es de hecho abstracto, por lo que C-sharp nos da esa palabra clave abstracta. ¿ Qué es una forma? Entonces la manifestación real de un barco es aquella que podemos cuantificar como cubo, cuboides, rectángulo, etcétera, tantos otros tipos como se me ocurra. Entonces digamos que pensé en incluir también el tranquilo triángulo de clase. Eso también es una oveja. Y quería heredar de la forma. Muy bien, porque sí tienen propiedades comunes, entonces nuestra clase llamada triángulo solo va a tener su propia propiedad única llamada tal vez hipotenusa. Podría ser capaz de adelgazar con mi geometría aquí, pero solo trabaje conmigo. Entonces triángulo también es heredar de las ovejas. Eso son dos lugares menos para poner, altura y longitud. ¿ Está bien? Por lo que siempre puedo poner triángulo en su propio tipo. Tan sola responsabilidad, una vez más, si queríamos modificar un triángulo multitudes con el fin financiar si queríamos modificar una forma, ya sabes dónde encontrarla. Si quisieras modificar cubo, no donde encontrarlo. Y el programa medio está aquí. Te darías cuenta que porque estoy usando herencia, ahí está esto, Es un símbolo que viene aquí. Esto se llama margen de herencia, en realidad me permitirá saltar entre la clase base heredando clases. Entonces si modifico la clase base, y luego desde la clase base necesito saltar nuevo a uno de estos triángulo cuboides. Siempre puedo simplemente hacer clic en ese salto sobre a cubo. Y es una forma agradable y fácil de navegar entre clases que están heredando de otra. Si lo desea, puede seguir adelante y escribir viejas líneas rojas de la consola y líneas rojas y llenar el cubo y luego hacer algunos cálculos, ¿verdad? Pero entonces eso trae otro punto interesante. Cuando viene a nosotros haciendo cálculos. Habría que saber definir el área o el volumen o lo que sea en función de los diferentes tipos de formas. ¿ Forma? Sí, podría tener un método que defina como getArea. Seguro. Público doble get area. En términos generales, para el área, sólo se necesita la longitud veces el ancho. Si es un triángulo, es media base veces altura. Y supongamos que la longitud aquí es la altura de los tiempos base. Por lo que verás que cada forma va a tener su propia forma de conseguir la zona. Entonces no es del todo fácil decir simplemente, oh, voy a tener una pérdida abstracta y tener una, se obtiene método de área. Eso funcionará. Por supuesto, se podría simplemente definir consigue era dentro de cada una de estas clases derivadas. Por lo que llamamos a esos gases derivados lo que sea heredando. Se llama la clase derivada. Lo que se está heredando se llama la clase base. Entonces esas son las dos palabras clave que pueden aplicar a tu conversación. Siempre puedo ver público doble conseguir el área para el triángulo. Y siempre puedo ver pública doble get area para el cubo. Pero entonces si voy a otro, vamos a ver, traigo otra clase. Déjame simplemente, déjame hacerlo de esta manera. Permítanme ser consistente. Entonces digamos que tengo rectángulo de clase. Esa es otra forma con la que interactuamos. Y también hereda de la forma. Muy bien, y entonces no tiene ninguna propiedad adicional y luego en este momento en realidad se olvida darle su propia era get. Entonces aquí mismo, voy a ser muy inconsistente porque en cubos puede conseguir el área, triángulo puede conseguir el área. Y soy humano, olvidé poner en la clase o método GetArea, lo siento, en la clase rectángulo. No. Obtengo el área del rectángulo y publiqué mi programa. Te mandé dicho a personas y luego estoy recibiendo esta retroalimentación, oye, esto no funciona cuando intenté con nuestras lenguas, trabajo. Esto apoyará un etc construido, etc, etcétera Eso es una especie de retroalimentación que debería emplearte para hacerlo mejor. Pero mi punto es que hay momentos en que esto puede suceder. Entonces es entonces cuando queremos mover nuestra herencia de solo clases, clase abstracta aquí, y luego empezar a mirar la herencia usando interfaces. Interfaz es versión escalada de una clase, pero es más como un contrato. Te voy a mostrar un ejemplo de eso. Así que sólo voy a escribirlo dicho aquí. Voy a decir interfaz en lugar de clase decimos interfaz. Y luego en términos generales, la convención de nomenclatura para una interfaces que empezaste con un I mayúscula y luego le das el nombre. Así que me forma. Esa es la interfaz con la que estamos trabajando. No, como dije, es clase de peso más ligero, lo que significa que puede definir propiedades, puede definir métodos, pero más bien puede declararlos, pero no los define. Sólo para buck camión. Esta es una llamada a función. No obstante, la definición de la función es el código real que una función está ejecutando. Déjame saltar de nuevo a mi persona. Entonces aquí está la definición de la función. Esas son definiciones a interfaz puede no necesariamente definirla porque la definición de obtener era para rectángulo va a verse diferente de la definición para el triángulo es diferente de la definición para el cubo. No obstante, puedo declarar que cada, cada clase derivada que está heredando de esta interfaz debe tener una definición para un método en particular. Por lo que aquí puedo ver que siempre debe haber aburrido azul get area. ¿ Está bien? Entonces cualquier cosa que herede de la forma IS. La mayoría implementan doble get area. Es por eso que lo llamamos una declaración o alguna, algunos lenguajes llamarían a esto como prototipos de función. Entonces esto es solo ver que este es el tipo de datos, este es el nombre. A lo mejor hay parámetros, pero eso es todo lo que hay. No es una definición y no es una llamada a función, es un prototipo. Sabes, puedo dejar que todo el mundo herede de una oveja. Saber. Vas a ver WE herencia una, no puedes heredar de más de una clases a la vez. No obstante, puede heredar de una clase y una interfaz o múltiples interfaces en ese momento. Esas son las reglas aquí mismo. Se lo puedo decir. Triángulo de mandíbulas. Sí, estás heredando de la forma. Y vamos a ver. Ninguno de ellos se ha definido la era. Déjame salir de conseguir era en cola. Triángulo y un rectángulo no tienen obtener era definida. Ahora recuerda que el problema era que lo enviamos dicho sin la capacidad de calcular el área para rectángulo. Y no, lo quité por un triángulo. El cubo de libro está bien. Qb solo necesita devolver altura, un todo, ¿es de nuevo? No, es ancho versus longitud, lo siento, longitud tiempos ancho, El área del cubo. Muy bien, eso está bien. Pero entonces estos dos no tienen ningún método definido para eso. En realidad puedo solo subir aquí al lado de la herencia después del colon y ver Como quería heredar de i forma también, déjame moverme. Formé archivo de Suiza. Permítanme hacer eso rápidamente. Me doy cuenta de que todavía es solo un archivo CSS y el nombre es forma. Y siempre quisiste asegurarse de que sus nombres de archivo coincidan con el nombre de la clase. Está en su propio archivo, es una herencia, es una interfaz más bien debe hacer cumplir la implementación de esto, declara un método que está siendo prototipos. Cuando voy a la clase que no es heredar de mi forma, veo un error. ¿ Qué es esta área? Se ve que rectángulo, que es la clase, no implementa el miembro de interfaz que filtro dot get era. Ves en eso necesito asegurarme de que si estoy heredando de Isua, que estoy implementando lo que dice IS shaped debe ser implementado. Por lo que sólo puedo hacer Control dots e implementar interfaz y me pondrá el stub método. Esta es una buena manera de hacer cumplir en la edición, el nivel de compilación. Que se están cumpliendo ciertas reglas. Cada forma debe poder calcular su área. Rectángulo debería haber conseguido era dejando que todos estos heredados de i formen. No estoy haciendo cumplir la regla porque este programa nunca se compilaría. Nunca podría enviarlo todo en este estado porque no funcionaría. Tengo que asegurarme de que voy a tener nuestra representación de GetArea antes de poder seguir adelante. No, esto solo va a lanzar una excepción no implementada, que es otro tipo de excepción, pero eso está bien. Podemos borrar eso. Entonces para rectángulo, puedo devolver longitud tiempos ancho. Muy bien, ¿por qué tengo acceso la longitud? Porque vinculado se definió en la oveja abstracta y es heredar de eso. Por lo que puedo acceder fácilmente a ellos sin necesidad redefinir y redeclare y poner en muchas propiedades. Tiempos de duración, ¿cuál es su altura? Era altura y anchura. Entonces eso significa que necesito realmente poner en la propiedad para, con miedo. Hay muchas permutaciones como todo esto funciona. Quiero decir, no voy a poder cubrir todas las variaciones. Solo quería darles ejemplos de por qué tendrían herencia por una clase versus herencia por una interfaz versus ambos. Cubo actualmente no está heredando de ninguna interfaz que se lo pueda decir, pero ya hizo la implementación, por lo que está bien. Ahí no hay error. Como dije, con los márgenes de herencia, siempre se puede saltar entre los archivos de clase y se puede saltar a la definición si es necesario. Se puede ver dónde se está definiendo por todo el lugar, etcétera Así que aquí en triángulo, si tratara de conseguir área de un triángulo, me daría un aerosol aquí. Puedo tener la definición dentro la clase triángulo, medio B. Así que eso es 0.5 veces la base, que fui a usar como longitud. Eso es medio tiempo base altura, ¿verdad? Lo siento, ha pasado un tiempo empezar a decir que es media base veces altura, verdad y de verdad, ¿verdad? Y eso es lo que se define como el área del triángulo. Esta es la zona del rectángulo. Y entonces el área del cubo es que a pesar de que estás heredando, puedes tener tus propios métodos aquí porque puedo ver fácilmente pública doble obtener volumen. Y el volumen del cubo sería tiempos de longitud o.Dije longitud tiempos longitud aquí, longitud tiempos ancho. Tiempos de longitud anchura veces altura. ¿ Está bien? Sí, estoy heredando 11 es comenzar bosques, pero puedo tener mis propias y mis propias propiedades aunque quiero decir, heredar, herencia nos ayuda a reducir la repetición. Y recuerda, principio DRY, no te repitas dondequiera que veas oportunidades como esta, donde podrías estar repitiendo ciertas propiedades a través de múltiples clases, aún plano que tú quieren ponerlos en una clase base y hacer herencia para cortar toda esa repetición. Vamos a escribir un programa rápido saber sólo para poner todo eso a prueba. Entonces ya tengo el cubo y te voy a mostrar la palabra clave var. Y también var es una forma rápida de definir una variable o un objeto. El asunto con var es que asumirá que es tipo basado en lo que está en el lado derecho de esta decoración. Entonces cuando digo var triángulo, no sabe qué tipo de datos es hasta que le diga que es un triángulo nuevo. Si dije var rectángulo, entonces la llamada al objeto, el objeto se llama triángulo. ¿ Qué aún va a ser de tipo o glucosa en lengua? Ese es un tipo que definí. Esto es algo común, verás qué desarrollo C-sharp donde en lugar de ver el nombre de la cadena y una edad y así sucesivamente. Pero yo era estricto en eso antes porque quería que apreciáramos los tipos de datos. Por ir hacia adelante, me verás usando var, un poco más. Var triángulo. Puedo decir var cubo. Puedo decir var rectángulo. El rectángulo es igual a un nuevo objeto fuera del rectángulo, etcétera. Entonces voy a hacer alguna consola, líneas correctas. Puedes golpear pausa y replicar esos pero los tres objetos, y luego tengo tres. Aquí hay pocas variables. Sólo los estoy definiendo como int, pero como dije, igual a fácilmente sólo ver lejos. Solo por ver virus sin, Ese enlace se supone que entero porque en el lado derecho, estamos viendo que estamos enviando sobre un entero. Esa puede ser una espada de doble filo porque no está dispuesta a darte un error si el tipo de datos no es lo que esperas. No obstante, cuando eres estricto así, puedes ver desde una milla de distancia que podrías estar escribiendo código incorrecto para la situación en cuestión, como aquí. Tiendo a favorecer el uso de los tipos de datos primitivos cuando necesito. Pero para los más complejos, voy a confiar en el fuego, pero a veces una vez más, puedes usarlos indistintamente. Aquí solo estoy pidiendo la longitud, el ancho y la altura. Entonces voy a poner puntos de cubo. Longitud a ser igual a la longitud, ancho del cubo para ser igual al valor de ancho que viene en. Cuba, altura de punto para ser altura. Otro lo mismo para el triángulo con longitud, triángulo con ancho y triángulo con altura. Observe que éste me está dando un error porque triángulo no tiene una propiedad width definida en ella. Entonces esas fueron las sugerencias de Visual Studio. Yo lo voy a quitar. Eso está bien. Y luego rectángulo va a estar tomando longitud y anchura, lo que no apretado. Saber, existen diferentes formas definir nuestro asignar estos valores. Esta es una forma de hacerlo. Hay otra forma de hacerlo. Hay al menos otras dos formas en las que se podría hacer de manera más eficiente. En la siguiente lección, cuando estábamos mirando a constructores, les voy a mostrar que después de que tengamos todos estos definidos, podemos hacer fácilmente alguna consola dot escribir líneas. Sólo tomaré prestados estos de una sola vez y veré triángulo. Déjame empezar con cubo, área de cubo. Entonces llamamos cubo puntos, consigue área. Por lo general eso es después de asignar los valores, tenemos una definición para que se obtiene era ahí y q también tendría obtener volumen. Así que lo llamaré a eso al mismo tiempo. Entonces solo haremos el triángulo. Aquí se llama el triángulo obtiene método era. Y podemos hacer lo mismo por el área del rectángulo. Muy bien. Sólo te estoy mostrando que cuando empiezas a tener el cuelgue de cómo funciona todo, todo fluye. Verás que la programación orientada a objetos está ahí para hacerte la vida más fácil. Así que mira cuánto código hemos escrito. Leuko minutos cosas que hemos hecho todavía, o program.cs es tan simple, es solo definir tres objetos, obtener datos y luego enviarlos y luego el proceso para obtener todos esos valores, esos están escondidos de nosotros. Cuando pruebo esto, solo voy a usar los mismos tres valores obviamente para las tres formas. El cm de longitud para verlo dentro de la costura. Muy bien, así que déjame liberar mi consola. Entonces digamos que la longitud es de 50 por 40 por 32. Y luego el área del cubo es de 2 mil, pero el volumen que debió haber sido volumen es 2032. Y luego las áreas triangulares. Entonces éste no estoy seguro si eso es correcto. Sí, sabía que era incorrecto porque dije plus en lugar de asterisco, disculpas. Pero espero que vean el valor de la herencia en este contexto. Una vez más, a través de la herencia, pude uno crea una clase base, eso es lo llamo una clase abstracta llamada forma, que definen ciertas propiedades compartidas que tienen todas las formas. Y entonces podría dejar que cada otra forma simplemente derive o herede de ese gas en forma de BCE. También miré el uso de la herencia para hacer cumplir ese cierto método o algunos mitos pensamientos, porque no estás limitado a uno solo. Pero ciertos métodos se hicieron cumplir en la forma. Entonces aquí pienso en aliviar alguna convención de nomenclatura. Entonces controla los datos y debe ser Gettier con un G. mayúscula Lo mismo para que obtenga volumen. Entonces no tiraría encarcelado por mí. Lo que estaba diciendo es que el, la interfaz cuando se hereda actúa como un contrato, un contrato establece que usted está obligado a hacer esto. Una vez que heredes de este contrato, quiere decir que ya eres bueno para llevar a cabo la operación definida por el contrato. Eso es básicamente, oh, whoa, las interfaces de herencia funcionan. Y no se complicó mucho más que esto. Pero cuando llegues a aplicaciones más grandes, entonces empezarás a verla. Pero esta es una buena introducción rápida a la herencia con clases e interfaces. 26. Constructores: Muy bien chicos, en esta lección estamos mirando a constructores. Entonces voy a reutilizar el proyecto de herencia sólo porque ya tiene tanta coordinación y creo que es una manera perfecta mostrar lo que son los constructores y mantener su útil. Cuando estamos pasando por herencia había mencionado que hay formas más fáciles, cotizar-unquote, de asignar valores a objetos recién creados. Una de esas formas sería, y voy a simplemente reorganizar el código poco rasgar a alguien para mover las definiciones de objeto a abajo, donde pedimos los valores. Cuando estoy definiendo cubo, similar a cuando estábamos haciendo las IRA, cuando pudimos decir darme una nueva área y luego poner en los valores al mismo tiempo. En realidad puedo hacer eso con una clase completamente nueva. En realidad puedo decir, dame un nuevo cubo, abrir y cerrar llaves rizadas. Y entonces puedo empezar a asignar los diferentes valores a las diferentes propiedades, ¿verdad? Para que pueda ver un ancho. Deberías obtener el valor de diez. Desde que lo conseguí a través de la entrada del usuario de cualquier k-mean hacia variable local. Muy bien. Obtienes la longitud de lo que vino a través de nuestra variable local. La altura obtiene el mismo tratamiento. ¿ Está bien? Es decir, esta línea de código en realidad eliminaría a todos estos tres. Siéntate en. Esta línea estaría viendo dándome un nuevo cubo que se define para tener el ancho de acuerdo a lo que entró, longitud y altura de acuerdo a lo que entró, a diferencia de mí iren a diferencia de mí ir cubos longitud de punto es igual a largo ancho de punto en cubos. Funciona. Pero una vez más, les estoy mostrando alternativas. En realidad puedo eliminar esas tres líneas de código. Puedo hacer lo mismo por el triángulo. Y en realidad no me encontraría el mismo tema cuando estaba haciendo el triángulo que accidentalmente puso en ancho. Y no pregunté dónde nuestra hipotenusa para mi triángulo. ¿ Ves eso? Eso está bien. La altura es igual a la altura Como, y luego la longitud es igual a longitud Como. Entonces podría poner fácilmente en nuestro valor de hipotenusa. No pedí uno, así que sólo voy a codificarlo duro a diez. Entonces eso elimina esas dos líneas de código. Y luego puedo replicar eso con el rectángulo en lugar de escribir desde cero, solo tomaré prestado el código del cubo y eliminaré la altura, de hecho, creo que es el que no necesito para el rectángulo, que elimina esas dos líneas de código. Mira eso mucho más ordenado. No, eso no es lo que son los constructores. Trabajando mi camino hasta mostrarte lo que son los constructores. Los constructores son métodos predeterminados que se van a crear en una clase que imponen que un objeto debe cumplir con las ocasiones específicas antes de que pueda ser instanciado. Eso es un bocado. Déjame explicarte. No, hay un constructor predeterminado que no toma parámetros. Entonces es por eso que sólo podemos ver cubo es igual a una nueva instancia de cubo, independientemente de que proporcionáramos valores o no. Porque recuerda que funcionó, trabajaste antes cuando creé el nuevo cubo sin ningún valor ahí. Entonces era solo un objeto sin altura, anchura ni longitud. Eso habría sido 0. No obstante, si quisiera hacer cumplir eso, para crear un cubo, hay que proporcionar esos valores desde el principio. Entonces me alistaría la ayuda de un constructor. Para crear un constructor. Sólo voy a presionar el cubo Shift 121 y saltar a la definición. En vigor fuera constructor, puede escribir fácilmente la palabra clave CTO y luego presionar Tab dos veces, y luego eso genera este método stop. Nodo. Los constructores se caracterizan por el hecho que uno son públicos y la herramienta, tienen el mismo nombre que la clase. Tres días tomar r puede tomar parámetros. El constructor predeterminado es uno que no necesita parámetros sin que yo realmente hiciera eso, había un valor predeterminado, está implícito, por lo que pude salir con la suya con el cubo sin parámetros. Esa es la predeterminada que ya está implícita. Pero a veces encontrarías personas que son muy explícitas con la predeterminada, sobre todo cuando tienen una alternativa que no es la predeterminada. En realidad puedes tener sobrecargas de constructor las mismas sobrecargas de método de fin de semana. Puedo definir otro constructor, la pestaña superior del CTR. Y entonces puedo decir que no, ves que se está quejando porque está viendo a dos constructores que son idénticos. Se ve estos ya uno aquí con el ambiente marino que tipifica, eso está bien. Pero, ¿y si quisiera hacer cumplir eso con el fin de crear un cubo? Tienes que darme anchura. Tienes que darme una altura. Y hay que seguir en la división de altura mal. Y entonces tienes que darme cuál es el otro? Ancho y longitud. Ahí vamos. Tienes que darme estos tres valores. Y una vez que me des esos tres valores, puedo instanciar fácilmente las propiedades a esos valores. Que no podemos tener un cubo que no tenga lados y pensarlo. ¿ Alguna vez has visto UCI con 0 longitud, 0 dentro de 0 altura? A lo mejor lo tienes, se llama cubo invisible. Para crear un cubo, debes darme la altura, el ancho, y la longitud del cubo. Así que en realidad puedo eliminar este constructor predeterminado y tener solo un constructor, que está viendo, necesito estos tres. No, cuando hago esto, mira lo que sucede en el program.cs, no hay manera de que pueda definir un objeto de viuda cubo que pasa en esos valores dentro del listado de parámetros. Entonces a pesar de que esto no apacigue al compilador, ¿verdad? Así que déjame quitarlo y mostrarte eso con el fin de crear un cubo. Si pasas el cursor sobre él, te va a mostrar que tienes que tener el ancho int en apretado y largo. Por lo que voy a tener que proporcionar el ancho. Y lo haré con el valor proporcionado por el usuario, la altura y la longitud. No, está satisfecho. Entonces ahora tiene ese cubo. Cuando digas, dame un nuevo cubo y dices dame nu cubo, tienes que proporcionar el ancho, la altura, y la longitud. Una vez que hagas eso, se van a asignar todos los valores . Porque en el constructor dije una vez que obtienes esos científicos de idea automática, este nuevo objeto de un cubo ya sabe cuál es su ancho, cuál es su altura, y lo que se entiende es por primera vez. No tengo que contarlo después de esta manera, todo nuestro teníamos el código inicialmente. Está bien, el triángulo aún puede salirse porque no definí en el constructor. Entonces incluso si le doy el constructor predeterminado, seguirá funcionando. Pero digamos que yo lo di ambos. Tanto el predeterminado como el que dice me dan el ancho, lo siento, no con la longitud, la altura, y la hipotenusa. O dirán bombo, ¿verdad? O podría hacer cumplir eso. Sólo quiero la hipotenusa. Depende de mí ¿cuál es el valor predeterminado? Cuál es el mínimo desnudo que este objeto debe tener para ser instanciado. Si tengo dos constructores como este, entonces lo que sucede es que puedo definir fácilmente uno por defecto como este y asignar los valores más adelante. O puedo tener otro donde pueda pasar en los valores. Entonces veamos que voy a usar el otro nodo. Entonces si digo paréntesis de triángulo abierto, entonces verás que me está mostrando que tengo dos opciones para crear un triángulo. Puedo crear en blanco, o puedo poner en el valor de hipotenusa. Y vamos a poner en diez, o pongo en la entrada del usuario, sea lo que sea. Eso es todo lo que se requiere de mí. Sé que tengo triángulo usando el constructor predeterminado. Déjame hacerlo por triplicado. Entonces tienes el constructor por defecto. Esto está completamente vacío. Sin altura, no sin longitud, lo cual no es realmente práctico. Entonces tienes el que sí, lo creé, barcos vacíos, estoy asignando los valores. Y luego tengo uno donde nada más tiene valores excepto la hipotenusa. ¿ Está bien? Entonces todas esas cosas son opciones a la hora de poner en constructor. Para que puedas tener múltiples constructores. Así que muchas veces cuando estamos definiendo nuevas clases, incluso clases incorporadas de C-sharp, es posible que encuentres que puedes definir un objeto. Lo sentimos, cuando estamos definiendo objetos fuera de gafas, se pueden definir los objetos con parámetros, a veces con todos los parámetros. Estas son solo sobrecargas constructores que existen en la clase. Si creo un constructor, ese es mi constructor base. Si creo múltiples constructores, entonces esas son todas opciones porque fácilmente podría simplemente expandir esto y decir dame la hipotenusa, la altura, y la longitud. Si quieres. Tienes esa opción también si estás creando un triángulo, si no lo puedes hacer en blanco, puedes darme solo un usuario de botón, puedes darme los tres. ¿ Qué voy a hacer cuando consiga los valores en cada configuración? Entonces cuando consigo la hipotenusa sola, diría que aquí hipotenusa, nuevos valores. Mantén. Si llego a los tres, entonces hipotenusa tu nuevo valor es montón. Seguro. Cuando obtengo la altura, su altura, y cuando consigo la longitud, su longitud, entonces todas mis definiciones se pueden caracterizar por todas esas opciones, ¿verdad? Entonces triángulo tres podría usar la Opción, opción sobrecarga s1, solo estamos pasando la hipotenusa es una donde paso en hipotenusa y vamos a usar diez. Paso en la altura, y paso en la longitud. Tres formas diferentes de crear una instancia de un objeto triángulo. Por supuesto, cada uno va a tener un resultado diferente porque esto en su estado actual cuando traté de conseguir área aquí abajo. Seguro. Sólo voy a conseguir 0 porque no hay nada que firmé. No obstante, conseguir oído de éste me daría un valor amargo. Vamos a intentar eso con Triangle Tool y luego probarlo con viaje, el que solo tenemos ese uso de botón, eso probablemente me va a dar 0 también causa eso es media veces 0 veces diez, que es 0. Y entonces éste donde estoy proporcionando todos los valores debería darme otro resultado. Entonces digamos que para un giro, Muy bien, así que ingresando algunos valores aleatorios. Y luego vemos aquí que tenemos dos ceros. El primer 0 para el triángulo aquí es porque estaba vacío, esos objetos vacíos. El segundo es triángulo a donde obtuvo la altura, la longitud, y la hipotenusa codificada como estaño, que por supuesto podría haber sido fácilmente entradas del usuario. Entonces tenemos el tercero que es 0 porque bueno, sólo nos dieron la hipotenusa ni altura y anchura. Por lo que los tiempos de media base o media longitud diez nos van a dar medias veces 0 veces diez, que es 20. Entonces el área triangular para la tercera donde consiguió diez a altura y el ancho va a ser 270. ¿ Está bien? Así que eso es más o menos, Eso es más o menos para el agujero que usas constructores, ¿verdad? Por lo que una vez más, los constructores están ahí para hacer cumplir los requisitos para ciertas propiedades antes de poder avanzar con la instanciación de un objeto. 27. Crea una cuenta de GitHub: Veamos la creación de una cuenta de GitHub. Si no tienes uno de estos, entonces puedes conseguir uno en tal vez cinco o menos minutos. Paso número uno, ve a github.com, eso es GIT Hub.com. Paso para seguir adelante y darles su dirección de correo electrónico para inscribirse? No, ya tengo una cuenta. En realidad puedo iniciar sesión en mi cuenta y mostrarte cómo se ve. Eso es lo que es. Es casi como una plataforma de redes sociales, pero para desarrolladores y colaboradores de código abierto, y cuantos más seguidores tengas es más actividad tendrás en tu pantalla. Cuantos más repositorios o proyectos que añadas, más tienes aquí. Por lo que es muy ventajoso para mantener copias de seguridad de su código fuente, para hacer referencia al código fuente de otra persona. Y en general, colaborar cuando se trabaja en equipos. Así que adelante y crea tu cuenta, y una vez que hagas eso, puedes pasar al siguiente paso. Como dije, es un procedimiento muy sencillo. Les das una dirección de correo electrónico. Voy a tratar de darles uno que no creo que tengan para mí todavía. Y luego una vez que hagas eso, solo tienes que seguir adelante y rellenar el resto del formulario, ingresa el contenido del correo electrónico y dales una contraseña. Y creo que después de esto mandan el código de verificación y tú compruebas eso. Y luego boom, tienes una cuenta. Una vez que hagas todo eso, estás listo para pasar a la siguiente lección. 28. Añadir solución a control de origen: Muy bien chicos. Estamos en un muy buen hito. Hemos hecho mucho desde que empezamos este curso hasta saber. Contamos con una serie de proyectos y una serie de referencias y ejercicios de código. Y creo que ha sido un viaje maravilloso hasta ahora. Esta coyuntura quería presentarles el concepto de control de fuentes, y es un concepto muy sencillo de comprender. En primer lugar, necesitarás tu cuenta de GitHub, y estoy seguro de que ya has creado una de las de Visual Studio. Es muy fácil de integrar con tu cuenta de GitHub. El primer paso aquí, y sólo voy a cerrar todas las ventanas, todos los bits de código. Puedo simplemente hacer clic derecho y decir que todas las bañeras va en TBS. Entonces tenemos una ventana en blanco. Desde aquí. Si miras la esquina inferior derecha, verás un combinado como su anuncio al control de fuente. Y haces clic en él, dirá get. Si no ve eso, entonces es posible que necesites volver a visitar la instalación de tu Visual Studio. Así que cuando hagas clic en Get, en realidad lanzará esta pequeña ventana que está sugiriendo que creas un repositorio Git. También puedes pedirte que te autentiques contra tu GitHub o conos en este punto. Entonces aquí tienes dos opciones. Tienes GitHub y Azure DevOps, ambos de propiedad de Microsoft, tanto nuestra variable para ambos son motores de control de origen que son compatibles, son soporte que obtiene protocolo. Cualquiera de los dos funciona. No obstante, te voy a mostrar con GitHub ya que es la plataforma de código abierto más reconocida. Y él nos dijo que publicara su código y que tenga un portafolio para mostrar a los demás que esto es lo que has escrito, esto es lo que sabrías. Procediendo con GitHub, solo puedes seguir adelante y rellenar fuera de curso, estás autenticado por lo que llenaría ciertos espacios en blanco para ti. Entonces vería un nombre de repositorio y luego se le puede dar algunos textos más. C-sharp con net six, fui a ver programación de consola con knit six. Y le puede dar una descripción. Actividades que rodean el B6 de la programación c-sharp en dotnet busca. Saber. Puede que te estés preguntando, vale, ¿ por qué quiero publicar mi código? Lo tengo en mi computadora. Bueno, un control de fuente te ayuda a gestionar los cambios. Entonces hicimos muchos cambios. No estábamos transportando con control fuente. Entonces estoy seguro de que si te pidiera recordar y nuestra deshacer algunas de las cosas de las lecciones anteriores, sería muy difícil. Entonces eso es un beneficio porque si cometes un error a lo que estaba funcionando y no estás seguro de cómo arreglarlo. Siempre puedes volver a Source Control, obtener la versión que funcionaba y luego empezar de nuevo. Entonces es bueno, es beneficioso por esa razón. Otro beneficio, una vez más, es que te ayuda a compartir código no solo con empleadores potenciales o tus amigos, sino también con tu equipo. Si estás trabajando en un proyecto y todos ustedes tienen que estar contribuyendo en lugar de copiar y pegar, estoy tratando de acercar sesión. En realidad puedes usar el control fuente y centralizar donde se almacena el código, que estará en GitHub. Y entonces a todos les gustaría suscribirse a ese repositorio y poder ver los cambios de todos los demás, hacer cambios, y todo el mundo puede estar en el mismo pie a la hora de nivelar el desvío o contribuir a la aplicación. Voy a desmarcar repositorio privado porque no quiero que esto sea privado si quieres ocultar tu aplicación al público de lo que elijas privada, lo contrario desmarques eso. Y entonces solo puedes decir Crear y empujar. Una vez que hayas hecho eso con éxito y las cosas nobles cambiarán en Visual Studio uno, ya no verás el botón que dice Agregar al control de fuente. Y sólo quería mostrarte maestro. Sólo quería mostrarte esto. Obtendrá símbolo con el nombre del proyecto u otros proyectos. Se puede ver Tengo una serie de proyectos en Control de Fuente. También verás algunos candados azules apareciendo junto a tus archivos. ¿ Esos significan que se registran ahí? No. Tengo el mismo nivel que lo que está alojado de forma centralizada. Si voy a ir a mi perfil de GitHub, podría navegar a través de mis repositorios. Déjame empezar desde cero. Entonces esta es mi página de inicio de GitHub y a la izquierda están mis Repositorios. Puedo ver programación de consolas dentro que busca y va a filtrar y mostrarme el proyecto y todos los archivos vieron fuera de los archivos de proyecto que subí están aquí para acceso público porque lo hice público. Si quisiera cambiar, es un privado. Voy a la configuración y me desplazo hacia abajo y veo cambiar la visibilidad, entonces eso me permitiría cambiarlo a privado. También podría archivar transferido a alguien más o simplemente eliminarlo si realmente ya no quería. También puedo renombrar. Así que mientras no choques con nombres, entonces eso no es problema. Si quisiera agregar personas a este repositorio, es decir, por mis compañeros de equipo, personas con las que estoy codificando gratis, se pueden sumar, creo, unos cinco colaboradores. Por lo que solo tienes que confirmar tu contraseña y luego podrás agregar personas. Muy bien, para que pueda seguir adelante y decir, gente de ojos busca el nombre de usuario, enviarles una invitación. Una vez que vean esa invitación, podrán aceptar y tendrán acceso al repositorio donde podrán venir y cerrar tejer o abrirla con Visual Studio haciendo clic en código en su propio equipo. Pueden decir Open With Visual Studio, que luego les permitirá abrir el proyecto localmente en una nueva ventana de Visual Studio en una ubicación de su preferencia. Entonces si cambié este camino a las pruebas, está bien, ahora puedo clonar y llegará a, automáticamente descargará todos esos archivos y los configurará para mí en mi computadora. Esto es lo que estarían haciendo tus compañeros de equipo después de que crearas el proyecto, tu equipo, seguiría adelante y clonar y luego podrán abrir la solución de archivos de la consola de programación SON. Y luego serían capaces de interactuar con todos los archivos del proyecto en consecuencia. Ahora, cuando cambio su yo por un expediente, digamos el Hello World, esto fue muy sencillo. Y entonces tal vez hice ese cambio. Sea cual sea el cambio, podría ser texto nuevo, podría ser un espacio, sea lo que sea, verás que esto ahora tiene una garrapata roja. Esta señal roja significa que he modificado el archivo desde la última vez. Entonces esto va a ser una modificación de prueba. Esa es mi modificación. He modificado el archivo relativo a la última versión que estaba en GitHub. Después de haber hecho mi cambio, estamos trabajando en equipo, nadie. Fue mi oportunidad de saber modificar estas partes particulares del programa y lo he hecho y estoy satisfecho. Necesito registrarlo en GitHub para que todos demás puedan tener acceso al cambio. Tendría que ir a una ventana llamada los buenos cambios. Puedes llegar hasta allí yendo a Ver y ver los cambios realmente lo ocultará antes. Pero fue Datsun cuando los estudiantes para acoplarlo a un costado aquí junto a Solution Explorer. Ahí vamos. No estoy seguro de por qué no va a fijarse en eso. Obtener cambios. Eso es en lo que me estoy enfocando. Entonces consigue cambios, uno, pones un mensaje, ¿qué lo modificaste? Daría un buen mensaje, modificado el programa Hello World. Entonces puedo ver comprometer todo y ver, así que haz click en ese pequeño caret ademas de comentarios Todo y haz clic en Commitar todo y sincronizar. Y lo que esto hará es empujar ese cambio a GitHub. Entonces no, todo lo que hice fueron unos clics de botón. Ahora el candado está de vuelta. Y si alguien más vuelve a GitHub, observa todos estos archivos de proyecto cuando actualice, va a mostrarlos hace 20 segundos hubo un cambio. Y me va a mostrar qué proyecto se cambió y cuál fue el mensaje. Si hago click en ese mensaje, programa modificado, ves aquí que me está mostrando que agregó dos nuevas especies así como lo que está en rojo es lo que era lo que está en verde es lo que es la nota. Muy bien. Por eso dije que puede rastrear los cambios porque ahora se puede ver exactamente quién hizo ese cambio. Entonces alguien que destruyó la solicitud, ya sabes a quién culpar. De acuerdo, puedes transportar fácilmente todos los cambios que se han producido en cada archivo con cada iteración. Y tienes todas las versiones que puede volver a buscar y dar click en los commits. Después se puede ver en base a los mensajes, quién hizo qué y cuál fue el mensaje, siempre se puede volver a esa versión del código y recuperar esa. Muy bien, así que esto es bueno para si alguien en el equipo destruye el código o incluso destruyes el código y querías revertir, es fácil simplemente desplazarse hacia atrás a eso, una versión más limpia. El otro lado para los integrantes del equipo que están esperando las actualizaciones. Entonces esta es la ventana original de Visual Studio. Y si miras mi program.cs, no tiene esa actualización, ¿verdad? Entonces digamos que no, hice las actualizaciones y, ya sabes, necesita recuperar el código más reciente para esa actualización en tu aplicación, en tu máquina. Todo lo que tienes que hacer es ir a conseguir cambios. Cuando salga esa ventana, déjame arreglar el acoplamiento una vez más. Cuando surja los cambios, solo tienes que hacer un ciclo de alberca. Te llamaré y te diré, oye, ya sabes, terminé el trabajo y lo revisé, obtén más tarde. Entonces eres como, Ok, gracias. Y luego solo vienes a conseguir cambios y luego haces una alberca. Y luego subirá a GitHub, obtendrá todos los cambios, y luego mira eso. Simplemente actualizó automáticamente mi archivo por mí. Es por eso que GitHub es perfecto para situaciones de equipo y no solo github comprado usando un sistema de gestión de control de fuente. Github es solo una de tus opciones. Tienes otras opciones están ahí conseguir es uno de los protocolos. Pero seré el más popular. Y la que recomendaría GitHub es una de las plataformas más populares, más fáciles de empezar dentro de mi libro, y también una que recomiendo.