none
Estructura de la clase BaseEntity RRS feed

  • Pregunta

  • Saludos

    Por lo general en mi código utilizo la clase BaseEntity para identificar a las entidades en mi dominio:

    public class BaseEntity
    {
        public int Id { get; set; }
    }

    Sin embargo, en un ejemplo de un proyecto del repositorio de Microsoft, la clase es un poco diferente

    public abstract class BaseEntity
    {
        public virtual int Id { get; protected set; }
    }

    Quisiera saber cual es el beneficio de hacer esta clase abstracta, la propiedad virtual y el set protected o que influye para que se haga este cambio.

    Muchas gracias

    sábado, 1 de agosto de 2020 18:54

Respuestas

  • Hola, el modificador abstract en una  declaración de clase indica que dicha clase está diseñada como clase base de otras clases y no para crear instancias por sí misma. El modificador virtual se usa para modificar una declaración de método, propiedad, etc y permitir que se invalide en una clase derivada.

    Protected set lo que hace es establecer  el set de tu propiedad y que sea únicamente accesible en su clase o en sus clases derivadas.

     

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Marcado como respuesta Erick Salazar lunes, 3 de agosto de 2020 0:36
    sábado, 1 de agosto de 2020 22:59
    Moderador

Todas las respuestas

  • Hola, el modificador abstract en una  declaración de clase indica que dicha clase está diseñada como clase base de otras clases y no para crear instancias por sí misma. El modificador virtual se usa para modificar una declaración de método, propiedad, etc y permitir que se invalide en una clase derivada.

    Protected set lo que hace es establecer  el set de tu propiedad y que sea únicamente accesible en su clase o en sus clases derivadas.

     

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Marcado como respuesta Erick Salazar lunes, 3 de agosto de 2020 0:36
    sábado, 1 de agosto de 2020 22:59
    Moderador
  • hola

    abstract (Referencia de C#)

    virtual (Referencia de C#)

    >>saber cual es el beneficio de hacer esta clase abstracta

    Que no se pueda instanciar, si la dejas como tu la defines alguien podria hacer

    BaseEntity entity = new BaseEntity();

    creando una entidad que no representa nada en el negocio, al ponerlo como bastract no se puede usar el new, sino que obligas a que tenga que aplicarse herencia

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 3 de agosto de 2020 4:57
  • Gracias por confirmar que se ha encontrado una solución a la consulta realizadaDebido a elloeste hilo será cerrado. 

    Si es necesario, por favor abra un nuevo hilo. 

    Cualquier duda referente a productos Microsoft, puedes consultarnos. Es un gusto informarte. 

    Gracias por usar los foros de MSDN. 

     

    Eric Ruiz

    ____________________________ 

      

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.  

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.   

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft. 

    lunes, 3 de agosto de 2020 14:17
    Moderador