Tutorial C# intermedio 9 --- Delegados I

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 ก.ย. 2024
  • Los delegados nos permiten tener comunicación entre objetos y son la forma moderna de llevar a cabo los eventos. Veremos sus conceptos básicos y como implementarlos.
    Suscribete, nuevos videos cada semana!!!
    ---
    Visita mis otros playlist para aprender más!!!
    Mi Facebookk: / nicolasarriojalandacosio
    Mi canal de TH-cam: / nicosiored
    Mi Google+: plus.google.co...
    Mi sitio Web: www.nicosio.com

ความคิดเห็น • 58

  • @fernandooropeza2355
    @fernandooropeza2355 ปีที่แล้ว +1

    Muy practica la explicación saludos de argentina amigo.

  • @carlos155811
    @carlos155811 5 ปีที่แล้ว +3

    De verdad, te haz lucido con tu explicación clara y precisa, me costaba mucho entender por mas que practicara y ahora me iluminaste todo xD. Como dijeron en otros comentarios... Tome su like buen hombre!

  • @jeisonsalazar71
    @jeisonsalazar71 7 ปีที่แล้ว +17

    Excelente vídeo, me sirvió mucho, es la explicación mas clara que encontré. Muchas gracias

    • @jonathanrodriguezdegracia
      @jonathanrodriguezdegracia 7 ปีที่แล้ว +1

      Exactamente diria yo lo mismo

    • @homeroaddams3434
      @homeroaddams3434 5 ปีที่แล้ว

      Cuando dijo "Es como manejar punteros a funcion" fue como abrir la puerta a la libertad, por fin lo entendí

  • @camilacgomez9438
    @camilacgomez9438 4 ปีที่แล้ว +2

    La mejor explicación, mil gracias

  • @AlexMartinez-be2rh
    @AlexMartinez-be2rh 6 ปีที่แล้ว +6

    Muchas Gracias, y le comento que toda persona que tenga la habilidad de explicar un tema difícil de manera sencilla es un genio!

  • @institutoeuropeodeapneamal7334
    @institutoeuropeodeapneamal7334 6 ปีที่แล้ว +10

    Menos mal que alguien sabe explicar los delegados

  • @latorre159
    @latorre159 5 ปีที่แล้ว +3

    Excelente explicación del tema, de todos los vídeos que he visto del tema este es el único que no me dejo con dudas que buscar.

  • @d-landjs
    @d-landjs ปีที่แล้ว +1

    Excelente maestro!

  • @nancort
    @nancort 4 ปีที่แล้ว +2

    Muchísimas gracias!!! Una explicación muy clara. Te lo agradezco mucho :D

  • @joshuarfernandon.deleon9822
    @joshuarfernandon.deleon9822 6 ปีที่แล้ว +1

    Excelente Vídeo, Realmente Básico y Practico con un lenguaje muy simple, Gracias.

  • @franciscojaviere.5686
    @franciscojaviere.5686 5 ปีที่แล้ว +1

    Muchas gracias por tu aporte, muy claro el contenido y fácil de entender.

  • @jvcho
    @jvcho 4 ปีที่แล้ว +1

    UAhhh casi lo entendi, ya estoy en el buen camino, muchisimas gracias, no compro un libro en mi vida.

  • @djara5150
    @djara5150 5 ปีที่แล้ว +1

    Exelente!!...muchisimas gracias!! 👍

  • @ximenaymatias3428
    @ximenaymatias3428 7 ปีที่แล้ว +4

    Hola, gracias por la explicación. Quisiera saber cual es la utilidad de los delegados, porque no llamar a MostrarRadio o MostrarPastel directamente?, porque usar delegados?. Tengo un caso, un formulario MDI que llama a un segundo formulario, lo que quisiera es que el segundo formulario le pase el texto al MDI, pero el MDI cuando le pongo static al método no me permite ver la barra de estado (strip) del MDI, que se puede hacer?. Gracias

    • @nicosiored
      @nicosiored  7 ปีที่แล้ว +5

      Los delegados se usan principalmente en aplicaciones con interfaz grafica o cuando tienes un sistema que va necesitar comunicarse con algo que no se ha creado aun. Por ejemplo en la clase Button de windows forms, el que programo esa clase no puede tener conocimiento de todos lo metodos que los demas programadores en el futuro van a usar con su clase cuando se de click. Entonces crea un delegado y su codigo de acuerdo al delegado, el programador del futuro hace su metodo de acuerdo a la regla del delgado y la clase Button puede invocar a ese metodo sin problema aunque no fueron programados ni por la misma persona ni al mismo tiempo. Esto va a quedar mas claro conforme avances en el uso de los delegados.
      Con relacion a lo otro, pasa una referencia de la primera forma a la segunda via el constructor cuando la estes creando y usa esa referencia para comunicarse. Puedes ver en mi curso de Windows Forms algunas formas de hacer eso, aunque no son MDI, pero te dan la idea de como resolverlo.

  • @arivincenti
    @arivincenti 7 ปีที่แล้ว +1

    Excelente video! Gracias.

  • @ArmandoRoman1982
    @ArmandoRoman1982 6 ปีที่แล้ว +1

    Excelente explicacion, mi gracias¡

  • @carlitosgarciia
    @carlitosgarciia 7 ปีที่แล้ว +1

    Muy buena explicación profe lml Chidoo

  • @ElCuerpoElectrico
    @ElCuerpoElectrico 3 ปีที่แล้ว +2

    Muy bien explicado, pero no entiendo por qué no llamar directamente a MetodoRadio y a MostrarPastel. ¿Qué ventaja tiene usar un delegado para ello?

    • @nicosiored
      @nicosiored  3 ปีที่แล้ว

      Por que el delegado puede llamar a codigo que no existe en el momento de definirlo. Por ejemplo cuando usas un boton, hay una especie de delegado en la clase boton que invoca al metodo donde tu colocas el codigo que deseas ejecutar cuando se da click a ese boton. Pero el que creo la clase boton no conocia de antemano que metodo se iba a invocar, entonces crea un delegado y el delegado es usado para invocar un metodo compatible

  • @arielgimenez_95
    @arielgimenez_95 3 ปีที่แล้ว +1

    Como me gusta C#, este lenguaje se ve exquisito.

  • @GerentedeSistemas
    @GerentedeSistemas 4 ปีที่แล้ว +2

    En aras de mejoras, cuando se cubre un concepto como el de delegados, no es suficiente con explicar Qué es y cómo se usa, faltó lo mas importante, por qué se debe usar y las ventajas con respecto a una solución sin delegados, por otra parte LinQ está basada integramente en delegados y Lambda, por lo tanto es un concepto muy importante.

    • @ctj01
      @ctj01 3 ปีที่แล้ว +1

      eso no le corresponde el, para eso esta la documentacion

  • @JuanDeEnzina
    @JuanDeEnzina 2 ปีที่แล้ว

    Cómo se declara public delegate void MiDelegado(string m) en Visual Studio 2022, donde no viene explícito el Main?

  • @RetroCode0011100100110111
    @RetroCode0011100100110111 4 ปีที่แล้ว +1

    Me suena util para la creación de los midleware de las aplicaciones

  • @bareirodavid
    @bareirodavid 4 ปีที่แล้ว +1

    Muy bueno.
    El sonido esta bajo.

  • @ezequiellisca1708
    @ezequiellisca1708 5 ปีที่แล้ว +1

    Gracias!!

  • @JuanSpain
    @JuanSpain 4 ปีที่แล้ว +1

    M-A-R-A-V-I-L-L-O-S-O!

  • @federicotomadin5130
    @federicotomadin5130 3 ปีที่แล้ว

    Puedo usar un mismo delegado para apuntar a varios metodos al mismo tiempo ?

    • @nicosiored
      @nicosiored  3 ปีที่แล้ว

      Si, un poco mas adelante se ve eso, usa la sintaxis de += para adicionar los metodos

  • @LeninLinares007
    @LeninLinares007 6 ปีที่แล้ว

    Hola maestro Nicolás!, pregunto: Si los Delegados almacenan una referencia a la memoria entonces daría lo mismo en la clase Radio o Pastel que los métodos sean públicos y estáticos?, ósea, si fueran Privados y NO Staticos el delegado funciona igual??... Lo que yo entendí es que el delegado va directo a la posición de memoria del método por tanto no importa si es Público, Privado o Static.... estoy en lo correcto??

    • @nicosiored
      @nicosiored  6 ปีที่แล้ว +4

      El acceso si importa invocar un metodo privado aunque sea compatible con el delegado puede dar problemas. El static se usa por que la invocacion no necesita de una instancia. Si no pones static necesitarias que exista la instancia para pode invocar

  • @saraemanuel1
    @saraemanuel1 6 ปีที่แล้ว +1

    excelente

  • @caraanchoatube4589
    @caraanchoatube4589 6 ปีที่แล้ว +1

    Exelente

  • @maycolchristianelcorrobarr41
    @maycolchristianelcorrobarr41 7 ปีที่แล้ว

    Entonces es mejor usar Delegate que los Collbacks de la clase anterior ??

    • @nicosiored
      @nicosiored  7 ปีที่แล้ว

      Si, ya en la actualidad es mejor usar delegados, pero aun asi es bueno conocer los callbacks

  • @juanespinoza1897
    @juanespinoza1897 7 ปีที่แล้ว

    Buen dia estimado profesor, tengo una duda... por que es necesario instanciar el delegado? porque no usarlo como:
    MiDelegado delegado = CRadio.MetodoRadio;
    en vez de:
    MiDelegado delegado = new MiDelegado(CRadio.MetodoRadio);

    • @nicosiored
      @nicosiored  7 ปีที่แล้ว

      Los delegados, por atras de lo que nosotros vemos, son clases. Por la tanto es necesario instanciarlas. Mas adelante en el curso veras formas en las que la sintaxis de asignacion es mas sencilla y parecida a lo que propones gracias a la sobrecarga del operador +
      msdn.microsoft.com/en-us/library/system.delegate(v=vs.110).aspx

    • @juanespinoza1897
      @juanespinoza1897 7 ปีที่แล้ว

      En pocas ambas lineas son lo mismo. Gracias.

    • @walterzunigas7899
      @walterzunigas7899 2 ปีที่แล้ว

      ​@@nicosiored Hola! te consulto por lo mismo. Si en la primera declaración de la variable 'delegado' de tipo MiDelegado e instanciación al método 'MetodoRadio' de la clase CRadio:
      MiDelegado delegado = new MiDelegado(CRadio.MetodoRadio);
      ,cuando hacemos una nueva referencia para el delegado:
      delegado = new MiDelegado(CPastel.MetodoPastel);
      es necesario instanciarlo por segunda vez? no quedaría el método anterior 'des referenciado' en memoria?

  • @luciogdev4308
    @luciogdev4308 3 ปีที่แล้ว

    ¿Pero cuál es la ventaja sobre la de no usar el delegado y utilizar los métodos de las clases directamente?

    • @nicosiored
      @nicosiored  3 ปีที่แล้ว +1

      El delegado te va permitir comunicarte con metodos que aun no han sido escritos, por ejemplo quien programa la clase Button de WinForms no tenia idea de cuales eran los metodos que la gente usaria con ellos y el delegado le permite usar su clase con clases de gente que ni sabe que existen ni cuando escribirian el codigo

  • @Nero3094
    @Nero3094 7 ปีที่แล้ว

    Bro puedes ayudarme con esto ya intente de todo, uso 2 texbox, uno me pide la cantidad y el otro los numero para irlos guardando. Pero solo me guarda el primero
    Alguna idea de como puedo hacer que el texbox los almacene, ya intente con array y no me queda
    Escribir un programa que lea las notas de los alumnos de una clase (mientras sean positivas) y escriba la nota media de todas las notas válidas leídas. Si una nota leída es superior a 10 se considerará no válida, escribiendo un mensaje en pantalla y leyendo una nueva nota.

    • @nicosiored
      @nicosiored  7 ปีที่แล้ว +1

      Ok, hay varias formas de solucionarlo, pero la mas sencilla que se me ocurre es la siguiente.
      Creas una etiqueta lblMedia donde se mostrara la media calculada.
      Creas unas variables double en la clase de la forma que sea conteo, media y cantidad y que inicializas en cero
      Creas un textbox para la cantidad de alumnos y un boton que al oprimirlo lee esa cantidad y la guardas en cantidad, tambien pone conteo a cero.
      Creas otro textbox para la nota y un boton que sea adicionar nota. En el handler de ese boton lo primero que haces es verificar si conteo no es igual a cantidad-1. Si no es igual entonces lees el segundo textbox y guardas eso en nota. Luego media=media+nota, luego conteo++
      Cuando conteo==cantidad-1 entonces calculas la media. media=media/cantidad, reinicias conteo a cero y muestas en la etiqueta el valor de la media

    • @Nero3094
      @Nero3094 7 ปีที่แล้ว +1

      nicosiored lo intentare

  • @juanantonio3839
    @juanantonio3839 5 ปีที่แล้ว +1

    crack

  • @dragoo6128
    @dragoo6128 5 ปีที่แล้ว

    ¿El Delegado hace exactamente lo mismo que un Interfaz? o ¿Que diferencia tiene?

    • @nicosiored
      @nicosiored  5 ปีที่แล้ว +1

      El delegado velo como una referencia a un metodo, de tal forma que en lugar de invocarlo directamente, lo invocamos de forma indirecta por medio del delgado. La interfaz define una serie de comportamientos que alguna clase implementa

    • @dragoo6128
      @dragoo6128 5 ปีที่แล้ว

      @@nicosiored Gracias

    • @BreegBenjamin
      @BreegBenjamin 4 ปีที่แล้ว

      @@dragoo6128 un video de 13 minutos y pregunta si un delegado es lo mismo que una interfaz.

  • @jdpaz2123
    @jdpaz2123 5 ปีที่แล้ว +1

  • @starlinpolanco8163
    @starlinpolanco8163 4 ปีที่แล้ว

    Me parece que los delegados son lo mismo que las interfacez que no se implementan.

    • @nicosiored
      @nicosiored  4 ปีที่แล้ว +1

      No, mejor ve al delegado como un apuntador a un metodo

  • @nicolasm1664
    @nicolasm1664 4 ปีที่แล้ว

    Los sinks me parecen mejores y mas elegantes que estos

  • @sebaspalacio2728
    @sebaspalacio2728 6 ปีที่แล้ว +1

    Gracias!!