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.