10 ERRORES Comunes al PROGRAMAR en C# .Net
En este video te hablare de 10 errores comunes que cometen los programadores de C# .Net.
00:00 Introducción
00:58 Declaración de variables con var
04:35 Objetos por referencia
07:10 Concatenación con string
09:20 Diferencia entre const y readonly
12:30 Diferencia de IEnumerable y List
16:35 Formato en fechas
20:28 Búsqueda en colecciones
23:50 La inmutabilidad de string
25:57 First en búsquedas sin resultado
28:37 Ámbito de variables en expresiones lambda
Si quieres apoyarme y darme para una cerveza puedes hacerlo por aquí: paypal.me/HectorDeLeonGuevara
Puedes apoyarme desde 0.5 USD al mes uniéndote como miembro al canal aquí: / @hdeleonnet
💻 CURSO de Patrones de Diseño en C# y ASP .Net: www.udemy.com/course/aprender...
La falta de respeto tanto a mí como a cualquier otra persona y el SPAM son razones de bloqueo en mi canal.
"Copyright Disclaimer Under Section 107 of the Copyright Act 1976, allowance is made for "fair use" for purposes such as criticism, comment, news reporting, teaching, scholarship, and research. Fair use is a use permitted by copyright statute that might otherwise be infringing. Non-profit, educational or personal use tips the balance in favor of fair use"
Sigueme en twitter ⇒ / powerhdeleon
Sigueme en facebook ⇒ / hdeleon666
Mi Sitio web ⇒ hdeleon.net
#programación #csharp #dotnet
Пікірлер: 122
Si te ha gustado el video puedes apoyarme Comentando y dejando un Pulgar Arriba Curso de Patrones de diseño en C# implementados en ASP: www.udemy.com/course/aprender-patrones-de-disenos-aplicados-en-asp-net/?couponCode=DOTNETRULES
VIDEO QUE NADIE PIDIO, PERO QUE TODOS NECESITÁBAMOS.
Para la parte "First en búsquedas sin resultado", anotaria que en vez de hacer: beers.Where(d=>d.Name.Equals("Fuller's")).FirstOrDefault() Podriamos hacer directamente: beers.FirstOrDefault(d=>d.Name.Equals("Fuller's"))
@albur
2 жыл бұрын
y es mas correcto, en la primera se aplica primero el where con todos los resultados y luego se saca de esos resultados el primero y en la segunda ya saca directamente el primero, es como aplicar directamente un TOP 1 en sql
El problema con la concatenación de Strings es que no son mutables. Una vez que asignas un valor a un string, ya no lo puedes cambiar. Por lo tanto, con cada concatenación se tiene que crear una nueva cadena con el nuevo valor en una nueva dirección de memoria; hacer eso cientos de veces, requiere mucho procesamiento. Por otro lado, StringBuilder utiliza un buffer que puede asignar dinámicamente. ¡Muy buen video! Gracias
Elegante video mil gracias por compartir y la explicación con cervezas más elegante por cada error una cerveza
Compadre muy buenos tus videos... Sos una fuente de actualización muy creíble de .Net y otras tecnologías....
Muchas gracias, me resulta bastante útil este video.
Muchas gracias Héctor
Excelente chrack!!! Héktor el vikingo jejejejeej está bueno!!
Genial, yo hasta ahora estoy empezando como desarrollador en .Net y .Net core con C#.
Realmente muy instructivo!
Gracias Héctor, he aprendido cosas claves!
Información muy básica para muchos pero nadie nace aprendido. Muy bien explicado.
Sos un grande! Gracias Hector!
Excelente !! muchas gracias
Pensé que sería un tutorial de power metal. Por que existe un firstordefault y first?, por que existe stringbuilder y no integran la funcionalidad al string estándar? , por que un entero es un struct? son cosas que nunca sabremos. Buen video.
Buen video, apoyo más del mismo tipo, para mssql, linq y blazor. Como sugerencia, háblanos de "tu", lo de usted se oye raro.
Ja,ja... Cierto.... ¡Malditas fechas!... Buen video. Saludos.
Muy buen Video. Felicitaciones.
Excelente contenido. Gracias por compartir bro. Saludos desde Nicaragua.
Buen video, el dynamic como mencionas si es peligroso pero ayuda mucho cuando estas trabajando como FrontEnd y la api que consumes aun no esta completamente definida y sus tipos de datos cambian, le metes un dynamic y seguís programando como si nada, cuando termine la api defines la clase con sus propiedades :D
me encantan tus vídeos, soy fan. a pesar de que ya conozco varias cosas igual me gusta repasarlo y la forma en que lo explicas lo entiende cualquiera.
@TheWillReales
2 жыл бұрын
X2
@darktarget10
2 жыл бұрын
X3
Otra diferencia de const respecto a readonly es que a const no se le puede asignar un valor variable como puede ser una llamada a algún método que devuelva algo o utilzar la función de interpolación de cadenas $ si se trata de un string
Hola Héctor, está mal hacer un Where y luego un FirstOrDefault porque en este último puedes agregar la condición para obtener el primer registro..!
Buen refresh con este vídeo. Como siempre, bien claro y al grano. Gracias. Saludos desde Perú.
Que nota de vídeo Héctor, yo si quiero seguir viendo más vídeos así, estoy encaminado a trabajar con c# y deseo seguir explorando más y más. Saludos.
Chingon el video, no me sabía la de stringbuilder, yo concateno con string.Concat jeje, pero ya lo comenzaré a implementar, las fechas si es muy común y si eh usado esa solución para poder trabajar con fechas ya que suelo cargar archivos de diferentes proveedores y cada uno usa la fecha con formato distinto, excelente video, saludos.
Hermano nunca momento, pero me encantan tus videos 10/10 + 5 estrellas michellin
En el penúltimo error, el query se puede pasar al método first y eliminar el where y hacerlo un poco más sencillo
@hdeleonnet
2 жыл бұрын
Yes
Sin desperdicios, gracias HÉKTOR. Saludos desde Argentina 🤘🤘🤘
Dedito para arriba, siempre se aprende algo nuevo con tus videos, junto a Felipe son los mejores en C# en la comunidad
En c++ en el caso 2 se dispara el constructor copia y no es por referencia, en c++ para usar la referencia se usa &
muy buena explicacion, fechas y StringBuilder son lo mas problematico
Excelente para repasar
Excelente Hector. Siempre cada uno de tus videos son muy buen recibidos y efectivos para nuestro conocimiento diario.
muy bueno bro, lo de las referencia de objeto en algún momento cuando inicie me confundía
me resulta interesante y enseñas muy bien, soy nuevo por aquí "te dejo un pulgar arriba"
Muy bueno!! ojalá subas más videos de este tipo, si en algún momento se tornan más específicos, errores comunes al utilizar Blazor estaría genial ;)
Excelente video Leon
Me encantan tus videos. Me ayudas a repasar lo que se y aprendo cosas nuevas para optimizar. Saludos!
Excelente video, espero que puedas hacer más sobre esta temática.
Muy buen video, ojalá hagas mas como este.
Muy buen video Héctor 👍
Buen video me aclaraste conceptos
Una nueva joya de video. Hector parcero que gran contenido haces gracias por compatir tu conocimiento
Gracias por el video Hector! Muy buen dato el de las fechas con ParseExact!
Qué tal me identifiqué con casi todos los escenarios, sabía que pasaba eso aunque no sabía el porque pasaba, gracias por la explicación eres un Master Saludos
@hdeleonnet
2 жыл бұрын
🤘
Excelente explicación. Aclaré muchas dudas. Gracias!
Gracias por lo de las fechas
Me encanto el contenido y cada explicación. Gracias!
Buenos tips. Saludos
Saludos Héctor!, muy buen video viene bien como repaso para refrescar. Muy buen formato de video. Ojalá puedas traer mas de estos.
@hdeleonnet
2 жыл бұрын
🤘
Me encantó este video, muy bien explicado, gracias
Hey, recién vi un vídeo tuyo en donde programas sin usar IF, y me di cuenta de que usabas variableString.Count() en vez de variableString.Length(), puedo preguntar por qué ? Si no es molestia
Muy duro el men , y solidaridad
Excelente explicación, gracias
Hola Hector, excelente video, pude reirme mucho con el tema de las fechas, ya que casi siempre da dolor de cabeza, en ese sentido, quisiera saber cual es tu recomendacion con un tema similar que es el de currencies, puntos decimales etc
Muy bueno 👍🏾
Bastante bueno, interesante seguir con este tipo de videos
Valiosos todos los ejercicios, interesante el manejo de fechas.
Buen video che, me aclaró muchas cosas
Héctor eres mi idolo. 🤗 Tengo una duda, es que no le he encontrado aún sentido a usar IEnumerable y siempre me voy por los List. Cuando sería recomendado usar el primero? Quizás no requiera modificar el array ? Gracias, abrazo
Excelente video, sumamente explicativo, realmente fenomenal... Denle un cartón de cervezas a este hombre.jpg 🍻🍺
Parcero, muchas gracias por compartir 🤘🏻Tu canal es de los más tesos que sigo. Tienes algún vídeo del top de libros de programación que recomiendas? O que libros recomiendas para alcanzar buen level cómo backend?
Excelente video, cuando deberiamos usar IEnumerable o List?
Me encanto este video, porfavor uno sobre Unity estaria muy interesante jjs
Hoy aprendi nuevos conceptos lml
Hector una pregunta, en c# para comparar cadenas cual es la diferencia de usar equals ó un ==
@hdeleonnet
2 жыл бұрын
== compara valor/tipo con valor/tipo, es decir, si tienes un arreglo de char que dice ['p','a','t','o'] y una cadena que dice "pato" te dira que es falso, pero Equals te dira que es igual ya que compara el contenido. Pero cuidado al utilizar un Equals en una cadena null te va a tronar.
exelente broder saludos
6:40 me recordó al paso por valor y por referencia de las funciones.
22:12 CoronaBeers2 ?? solo yo escucho coronavirus XD. Excelente video sigue asi.
@nifares8744
2 жыл бұрын
Yo también pensé en eso, no eres el único 😅😅
Muchas gracias buen video, ahora que vi lo del stringbuild me fije en el detalle que al inicio de un string "string lo que sea he visto en varios videos que usan el símbolo "$", y en las pruebas lo he hecho con y sin ese símbolo entonces cual es la función de este?
@rogersurmay1529
2 жыл бұрын
El $ sirve para la interpolación de cadenas. Otra forma de concatenar
Hola Héctor como siempre un gran video, para cuándo un vídeo de como agregar caché a una API .net core? :)
Hola Hector, en que casos tendriamos que utilizar un struct sobre una clase?
@hdeleonnet
2 жыл бұрын
Int y float son struct. Cuando asignas un struct a otro struct va su valor y no su referencia como con clases. Sin necesitas crear un tipo de elemento que sea inmutable y desees se comporte como tipos básicos como int y float.
jejej lo de las fechas... q dolor de cabeza me daba en las épocas de novato , otro error de principiantes es cuando haces una estructura como un if() y no usas {} y dentro del if debía ir mas de una linea,..pues armas quilombos, bueno si, es de muy principiante... pero mas de uno le ha debido pasar.
Excelente video. Consulta, respecto a los objetos por referencia, cual sería la forma correcta de mostrar beer1.Name y beer2.Name? saludos!
@kevinpolo9433
2 жыл бұрын
hola Emmanuel, encontraste la solución?
Una pregunta Hector y como podría solucionar lo de los objetos por referencia, en JS se puede mediante el uso de ...beer1
una pregunta es posible una plantilla html con css se puede pasar a un xmal c#?
Me dió risa lo de la clase cerveza
de noche programador en c# de dia guitarrista en un grupo de heavy metal
¡Excelente vídeo! 👍 Pregunta. Entiendo que hacer una búsqueda dentro de una colección usando LINQ es más práctico. ¿En rendimiento es igual de poderoso?
@hdeleonnet
2 жыл бұрын
Lee sobre expression tree en .net
El segundo problema se puede resolver si entiendes la diferencia entre reference types y primitive types
estaba haciéndome loco por que una consulta linq me lanzaba una excepción ,ojala hubiera visto el video antes, aunque no se si eso también aplica cuando consultas un DataTable 🤔
⭐⭐⭐⭐⭐
Hola tengo un problema tengo mi aplicacion con la cual administro un negocio familiar pero al actualizar mysql desde nuGet me sale un error al conectar al BD> PDV_V2.exe Error: 0 : SSL Connection error.
Se hizo el vídeo de Unity?
lo del string y stringbuilder lo comprobe por experiencia propia, y es mil veces mas rápido el stringbuilder para realizar concatenaciones.
AYUDA! No se puede iniciar directamente un proyecto con un tipo de resultado de biblioteca de clase.
En diez segundos entendí el concepto de inmutable y mutable. Otras explicaciones no eran claras para mí
No es solo que no sea tan rica, es que no es nisiquiera cerveza maestro, eso es agua de orina, jajajaj :v
Darck c#
Héctor puedes ayudarme... Tengo problemas en el almacenamiento masivo en NET CORE. La aplicación estaba desarrollada en Entity framework y se está migrando a .net CORE pero para para insertar 16000 datos net CORE se tarda más de 10 min cuando la apps vieja lo inserta en menos de un minuto en que falló?
@nicolasrubiano3303
2 жыл бұрын
Hola Roberto, como estas? Es muy dificil con este comentario determinar cual es el problema! Si te es posible comparte el codigo o por lo menos el fragmento que tienes dudas, tal vez asi sea mas facil ayudarte!
@robertode7057
2 жыл бұрын
@@nicolasrubiano3303 gracias... Te comento estoy importando información desde un excel hacia una base de datos Sql hasta ahí no tengo problemas uno de los campos que importo necesito encriptarlo ese proceso tarda más de 5 minutos y cuando hago el addrange(milista) tarda más de 4 minutos en guardar en base
@nicolasrubiano3303
2 жыл бұрын
@@robertode7057 Estas usando Bulk Insert? o insertas record by record?
;
pero cual es la forma correcta para tratar esto 7:05
Genial tu video! :), pero cabe aclarar que usar var no es un error como tal, no por usar var tu codigo va a ser mejor o peor, esto es un tema netamente de style. Si estas en un code base el cual el guideline es que uses var, si no lo usas claramente es un error, pero si por el contrario el codebase establece que no uses var, en ese momento usarlo es un error. Si bien hay una cantidad de discusiones al respecto de quieres prefieren usarlo o quienes prefieren usar la declaracion completa, pero basicamente var es un sintax sugar de C#!
@hdeleonnet
2 жыл бұрын
Nadie dijo eso.
Nunca pasó el error que quiero😢😢
Explicas muy bien hermano , pero estar hablando de cerveza no deja que uno se concentre en lo que dices...
@hdeleonnet
2 жыл бұрын
ir por una y ver el video
Estan buenos los consejos pero aveces tus explicaciones confunden xD
No digiste cual era el error 1. Esplicaste formas de declarar variables
"Declaración de variables con var" No es un error...
@hdeleonnet
2 жыл бұрын
Nadie dijo que ese fuera el error.
@jvillaro
2 жыл бұрын
Ojo, el video está genial. No me lo tomes a mal, solo que me parece que puede tender a confundir si nos guiamos por el título del video y luego la sección
@hdeleonnet
2 жыл бұрын
El punto es no pensar que var hace la variable dinámica en tipo, algo que es común sobre todo en personas que vienen de lenguajes interpretados