Anular propiedades en subclases en C#

Muhammad Zeeshan 12 octubre 2023
  1. Descripción general de la anulación en C#
  2. Use la propiedad abstracta para anular propiedades en subclases en C#
Anular propiedades en subclases en C#

Este artículo le enseñará cómo usar C# para anular campos o propiedades en subclases. Veamos una descripción general de la anulación en C#.

Descripción general de la anulación en C#

La anulación permite que una clase secundaria implemente un método ya presente en la clase principal. Anteriormente, esta habilidad solo estaba disponible para la clase principal.

Dado que la subclase contiene un método con un nombre similar al de la clase base, la implementación en la subclase tiene prioridad sobre la de la clase base.

Por ejemplo, digamos que tenemos una clase base abstracta y queremos definir un campo o propiedad con un valor único en cada clase heredada de esta clase principal. Y queremos especificarlo en la clase base para que podamos referirnos a él en un método que pertenezca a la clase base.

Use la propiedad abstracta para anular propiedades en subclases en C#

El uso de una propiedad abstracta, que las clases heredadas pueden anular, es el enfoque óptimo para la situación del caso anterior. Esto tiene varias ventajas, incluido que se aplica, limpia y puede anularse.

abstract class Tree {
  abstract public int MyLeaf { get; set; }
}

Pero parece un poco extraño devolver un valor codificado de forma rígida en lugar de encapsular un campo, y hacerlo requiere algunas líneas de código más en lugar de solo una. Estamos obligados a declarar un cuerpo para la operación set, pero esto tiene poca importancia y probablemente haya una técnica para evitarlo con la que no estamos familiarizados.

class Root : Tree {
  public override int MyLeaf {
    get { return 1; }
    set {}
  }
}

Código de ejemplo completo:

abstract class Tree {
  abstract public int MyLeaf { get; set; }
}

class Root : Tree {
  public override int MyLeaf {
    get { return 1; }
    set {}
  }
}
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn

Artículo relacionado - Csharp Property