Erweitern einer Klasse in C#

Muhammad Zeeshan 12 Oktober 2023
Erweitern einer Klasse in C#

In diesem Tutorial erfahren Sie, wie Sie eine Klasse mit der Programmiersprache C# erweitern.

Verwenden Sie Vererbung, um eine Klasse in C# zu erweitern

Bei der Arbeit mit der objektorientierten Programmierung (OOP) ist die Vererbung einer hierarchischen Ebene zugeordnet. Obwohl es machbar ist, eine abgeleitete Klasse in ihre Basis-Klasse umzuwandeln, können wir nicht das Gegenteil tun.

Es ist unmöglich, von einer Basis-Klasse in eine abgeleitete Klasse umzuwandeln. Schauen Sie sich das folgende Beispiel an, um es besser zu verstehen.

Im folgenden Beispiel fügen wir dem neuen Objekt nacheinander Eigenschaften hinzu und verwenden dann das neue Objekt, um eine einzelne Eigenschaft des vorherigen zu erweitern.

  • Importieren Sie zunächst die folgenden Bibliotheken.
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text.RegularExpressions;
    
  • Erstellen Sie eine Klasse Person mit den Eigenschaften Firstname und Lastname.
    public class Person {
      public string Firstname { get; set; }
      public string Lastname { get; set; }
    
      public Person(string fname, string lname) {
        Firstname = fname;
        Lastname = lname;
      }
    }
    
  • Konstruktorüberladung wird nun verwendet, um aus einer Person einen Student zu bauen.
    public class Student : Person {
      public Student(Person person, string code) : base(person.Firstname, person.Lastname) {
        this.code = code;
      }
      public Student(Person person) : base(person.Firstname, person.Lastname) {}
      public string code { get; set; }
    }
    
  • In der Main()-Methode erstellen wir ein Person-Objekt und füllen es wie unten beschrieben mit Daten.
    Person person = new Person("Muhammad Zeeshan", "Khan");
    
  • Erstellen Sie dann zwei Student-Objekte namens s1 und s2 und übergeben Sie das person-Objekt und code als Parameter.
    Student s1 = new Student(person, "3229");
    Student s2 = new Student(person, "3227");
    
  • Zuletzt drucken wir die Student-Objekte mit Person-Eigenschaften.
    Console.WriteLine(s1.code);
    Console.WriteLine(s2.code);
    
  • Vollständiger Quellcode.
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text.RegularExpressions;
    
    public class Person {
      public string Firstname { get; set; }
      public string Lastname { get; set; }
    
      public Person(string fname, string lname) {
        Firstname = fname;
        Lastname = lname;
      }
    }
    
    public class Student : Person {
      public Student(Person person, string code) : base(person.Firstname, person.Lastname) {
        this.code = code;
      }
      public Student(Person person) : base(person.Firstname, person.Lastname) {}
      public string code { get; set; }
    }
    
    static class Program {
      static void Main(string[] args) {
        Person person = new Person("Muhammad Zeeshan", "Khan");
        Student s1 = new Student(person, "3229");
        Student s2 = new Student(person, "3227");
        Console.WriteLine(s1.code);
        Console.WriteLine(s2.code);
      }
    }
    

    Ausgang:

    3229
    3227
    
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

Verwandter Artikel - Csharp Class