Generics en C# - Programacón intermedia #15

Поділитися
Вставка
  • Опубліковано 15 гру 2024

КОМЕНТАРІ • 22

  • @NetMentor
    @NetMentor  4 роки тому +3

    enlace al blog: www.netmentor.es/Entrada/generics-csharp
    Twitter: twitter.com/NetMentorTW

  • @Pilar-p6c
    @Pilar-p6c 5 місяців тому

    Muy buena explicación. Muchas gracias!!

  • @elgrancriticon8586
    @elgrancriticon8586 2 роки тому +3

    Muy buena explicación, me estoy leyendo casi todos los apartados de tu web de C# y uno mejor que el otro. Gracias!!

  • @ManiasInc
    @ManiasInc 3 роки тому +1

    muchas GRacias por la explicación!!!...muy bueno el video!!😃👏👏👏🍻🍻

  • @edwinroman30
    @edwinroman30 2 роки тому

    Genial, incredible video. Clear and concise !

  • @deckermv7530
    @deckermv7530 3 роки тому +1

    Muy bien explicado, gracias!

  • @fistergutierrez
    @fistergutierrez 4 роки тому +1

    Excelente video, muy pocos explican sobre esto y al principio cuándo llegas a ver los no sabes que onda jaja. Igual los TResult, TModel, TEntity y esas vainas te confunde al principio. Saludos desde 🇲🇽

  •  4 роки тому +1

    Buen vídeo!!! Sigue así 💪

  • @charly-ic2dd
    @charly-ic2dd 4 роки тому +1

    no entiendo esas propiedades q se ven en la linea 12 min 1:35, no estarian incompletas? osea al get no le falta el return por ejemplo y al set el value??

    • @NetMentor
      @NetMentor  4 роки тому +1

      Te refieres a Marca y Modelo?
      No, estan bien, a ese get/set sel le denomína "getter y setter" y es la encapsulación de un field en una propiedad.
      No se si me explico claramente, pero no, no hace falta que pongas return o la asignacion de valores con value

    • @charly-ic2dd
      @charly-ic2dd 4 роки тому

      @@NetMentor ahh xq yo aprendi a escribirlos de la forma por ejemplo
      public int X { get{ return x; }set { x = value; }} tu forma me parecio incompleta, pero si me dices esta bien pues te creo jaja

    • @NetMentor
      @NetMentor  4 роки тому +1

      Eso funciona, pero como ves con tu 'X' devuelves el valor de 'x'. El resultado final es el mismo (el compilador el hace por detrás)
      A mí me.gusta más únicamente con las propiedades y el get;set; ya que es mucho menos código y mas clara.
      También depende en que versión del lenguaje estés, creo que esta forma no funciona en C#1

    • @charly-ic2dd
      @charly-ic2dd 4 роки тому

      @@NetMentor ahh okkk

  • @frangambino
    @frangambino 2 роки тому

    Muy bien video!. Una pregunta, no me queda claro para que podriamos usar un filtro limitando a que el generic sea de una clase especifica. No perderia el sentido de estar usando generics?

    • @NetMentor
      @NetMentor  2 роки тому +1

      hay casos y casos, por ejemplo cuando no pones ningún filtro, estas aceptando cualquier tipo, lo que quiere decir que no vas a interactuar con ellos de forma individual, por ejemplo List;
      Pero cuando estas programando para la empresa en muchos casos vas a necesitar acciones que solo suceden a un subgrupo de los tipos, pues estos son los que "filtras" con el mismo grupo, ya que una vez indicas que los quieres de un tipo o de otro, puedes acceder a sus propiedades y sus métodos; Al final tienes que buscar lo que mas te convenga.

  • @fredymaldonado6184
    @fredymaldonado6184 3 роки тому +1

    Buen video felicitaciones por tus videos, quería consultarte porque una clase podría tener un constructor vacío, en que casos es necesario o no?, saludos desde Perú.

    • @NetMentor
      @NetMentor  3 роки тому +1

      Hola! El constructor vacío se crea siempre automáticamente aunque tu no crees, ya que es el de por defecto u el compilador lo crea.
      Luego personalmente no suelo tener ninguna clase con sin constructor, salvo en las dto que devuelve una API o similar (siempre transferencia de datos a otro sistema), esto es porque si creas un constructor vacío, tienes que crear setters para tus propiedades que normalmente llevan al.codigo a funcionar de formas inesperadas.
      Tengo un vídeo sobre inmutabilidad en el que hablo sobre este tema ua-cam.com/video/ZSCSXo7G8o8/v-deo.html
      Un saludo !

  • @MrElmarqueli
    @MrElmarqueli 3 роки тому

    Una pregunta Como puedo indicar que T solo acepte aquellas clases que incorporen dos interfaces distintas, por ejemplo
    que T acepte la calse A que implementa la interfas IC
    y que tambien se acepte que T acepte la clase B que implemente la itervace IF
    se puede hacer eso no he encontrado forma y la info que he checado no hacen referencia a nada parecido siempre es con una, pero lo que quiero es que T acepte cualquiera de las dos interfaces, pero a la ahora de poner where T:IC,IF lo que me pasa que la calse que pongo no me va poreue no continene una de las interfaces, pero es que no quiero que la calse A contenga las dos interfaces pero si quiero que T me permita y si la clase implementa IF tambien me lo permita auque no esten las dos interfaces implementadas en la calse A o B. se entide mi problema?

    • @NetMentor
      @NetMentor  3 роки тому

      Buenas si, te entiendo, no puedes poruqe A implementa IC pero no IF.
      cuando utilizas la "coma" lo que estas indicando es ambas, no una o la otra, esa acción no es posible.
      en tu caso, para arreglar el problema tienes que definir otra interfaz "ICF" con los metodos comunes entre IC y IF, después ambas interfaces deben implementar ICF y en tu clase debes hacer where T : ICF;
      esta es la única solución.
      Cualquier problema me dices, Un saludo!

  • @Javea65
    @Javea65 6 місяців тому

    No es terrible.... es acoplamiento!!!

  • @PabloHelal
    @PabloHelal 4 роки тому

    Puedes poner where: Car, Person ?
    Gracias por el video

    • @NetMentor
      @NetMentor  4 роки тому +1

      Nope, únicamente puedes seleccionar una clase como constraint;
      Lo que si puedes hacer es indicar multiples interfaces, por ejemplo IPersona, IVehiculo
      Pero no filtra una u otra, sino que exije ambas;
      por ejemplo en este caso si hcieras where T : IPersona, IVehiculo
      necesitarias una clase que heredara de ambas, royo lo siguiente: public class Entidad : IPersona, IVehiculo la cual contendria TODOS los metodos/propiedades etc, de AMBAS interfaces.