.NET-HILFE

C# Getter Setter (Wie es für Entwickler funktioniert)

Chipego
Chipego Kalinda
29. August 2023
Teilen Sie:

Getter und Setter sind wesentliche Konzepte in objektorientierten Programmiersprachen wie C#. Diese beiden Methoden ermöglichen es uns, den Zugriff auf und die Änderung von Klasseneigenschaften zu kontrollieren. In diesem Tutorial werden wir sowohl Anfänger als auch Fortgeschrittene Aspekte von C# Gettern und privaten Settern anhand von Codeblöcken untersuchen.

Einführung in Getter und Setter

Was sind Getter und Setter?

Im Grunde genommen sind Getter und Setter nichts anderes als gleichnamige Methoden in einer Klasse. Der Getter gibt den Wert einer privaten Feldvariablen zurück, während der Setter die Bedeutung der Variablen ändert. Diese Methoden stellen sicher, dass die internen Daten (Felder) einer Klasse sicher und korrekt zugegriffen oder modifiziert werden.

Warum brauchen wir sie?

Stellen Sie sich eine öffentliche Klasse Auto mit einer privaten Zeichenfolgen-Eigenschaften-Beschreibung vor. Wenn jemand außerhalb dieser Klasse die Beschreibung wissen möchte, kann er nicht direkt darauf zugreifen, da sie privat ist. Hier kommt die Rolle der Getter und Setter ins Spiel.

Ein Getter würde es den Benutzern ermöglichen, den Wert eines private string description abzurufen, ohne ihnen direkten Zugriff zu geben, um ihn zu ändern. Andererseits würde ein Setter den Benutzern die Möglichkeit geben, die implizite Parameterbeschreibung unter den von uns festgelegten Bedingungen zu ändern.

Zugriffsmodifikatoren

Zugriffsmodifikatoren definieren den Grad der Sichtbarkeit und Zugänglichkeit eines Feldes oder einer Eigenschaft von außerhalb der Klasse. Die am häufigsten verwendeten Modifikatoren sind public und private.

  • Public: Felder oder Eigenschaften, die als public deklariert sind, können von überall in Ihrem Programm zugegriffen werden. Zum Beispiel könnten Sie eine public int age-Eigenschaft haben, die von jedem Teil Ihres Codes zugegriffen und geändert werden kann.
  • Private: Eigenschaften oder Felder, die als privat deklariert sind, können nur innerhalb der definierten Klasse zugegriffen werden, zum Beispiel private int age. Diese Kapselung hilft, unbefugte Änderungen zu verhindern und stellt sicher, dass der interne Zustand der Klasse ordnungsgemäß beibehalten wird.

Einfache Getter und Setter

Lassen Sie uns mit einem einfachen Beispiel beginnen.

//set accessor
public class Person
{
    private string name;  // This is a private string name property variable

    public string GetName()   // This is the getter
    {
        return name;
    }

    public void SetName(string newName)   // This is the setter, new value
    {
        name = newName;
    }
}

static void Main()
{
    Person person = new Person();
    person.SetName("John");
    Console.WriteLine(person.GetName());
}
//set accessor
public class Person
{
    private string name;  // This is a private string name property variable

    public string GetName()   // This is the getter
    {
        return name;
    }

    public void SetName(string newName)   // This is the setter, new value
    {
        name = newName;
    }
}

static void Main()
{
    Person person = new Person();
    person.SetName("John");
    Console.WriteLine(person.GetName());
}

In der obigen class Person verfügen wir sowohl über einen Getter (GetName) als auch einen Setter (SetName) für die name-Eigenschaft. Wenn Sie die static void Main-Methode ausführen, wird "John" ausgegeben, da wir diesen Wert für den Namen mit dem Setter festgelegt haben.

Auto-Implementierte Eigenschaften

Nun werden Sie vielleicht denken: "Muss ich immer separate Methoden für Getter und Setter schreiben?" Die Antwort lautet "Nein" C# hat ein Konzept namens "automatisch implementierte Eigenschaften" oder "automatische Eigenschaften" eingeführt, um dies zu vereinfachen.

In C# können Sie automatische Eigenschaften verwenden, die Ihnen eine Kurzform zur Deklaration eines private field und seiner zugehörigen Eigenschaft bieten. Hier ist ein Beispiel:

public class Student
{
    public string Name { get; set; } // This is an auto-implemented or automatic property, public string Name
    public string Title {get; set;}
}

static void Main()
{
    Student student = new Student();
    student.Name = "Alice";  // Using setter
    Console.WriteLine(student.Name);  // Using getter
}
public class Student
{
    public string Name { get; set; } // This is an auto-implemented or automatic property, public string Name
    public string Title {get; set;}
}

static void Main()
{
    Student student = new Student();
    student.Name = "Alice";  // Using setter
    Console.WriteLine(student.Name);  // Using getter
}

In der Student-Klasse ist die Name-Eigenschaft sowohl ein Getter als auch ein Setter, die automatisch implementiert sind. Der C#-Compiler erstellt im Hintergrund ein private string name-Feld, und die Name-Eigenschaft ermöglicht den Zugriff auf dieses Feld.

Erweiterte Zugriffsmodifikatoren in Eigenschaften

Nur-Lese-Eigenschaften

Manchmal möchten Sie vielleicht eine Eigenschaft bereitstellen, die von außen gelesen, aber nicht verändert werden kann. In diesem Fall sind schreibgeschützte Eigenschaften sehr nützlich. Sie können den Setter in einer Eigenschaft weglassen, um sie schreibgeschützt zu machen.

Nehmen wir an, wir möchten unserer Person-Klasse eine schreibgeschützte string Description-Eigenschaft hinzufügen:

public class Person
{
    public string Name { get; set; }
    public string Description { get; }

    public Person(string name, string description)
    {
        Name = name;
        Description = description;
    }
}
public class Person
{
    public string Name { get; set; }
    public string Description { get; }

    public Person(string name, string description)
    {
        Name = name;
        Description = description;
    }
}

In diesem Beispiel kann die Description-Eigenschaft nur im Konstruktor der Person-Klasse mit weniger Code festgelegt werden. Einmal eingestellt, kann er nicht mehr von außen geändert werden.

Private Einrichter

Manchmal möchten Sie vielleicht zulassen, dass die Eigenschaft von außerhalb der Klasse gelesen, aber nur innerhalb der Klasse gesetzt werden kann. Dies wird mit einem private set erreicht.

public class Program
{
    public string Description { get; private set; }

    public Program()
    {
        Description = "This is a program about getters and setters.";
    }
}

class ProgramTest
{
    static void Main()
    {
        Program myProgram = new Program();
        Console.WriteLine(myProgram.Description);  // Allowed
        // myProgram.Description = "New Description";  // Not allowed
    }
}
public class Program
{
    public string Description { get; private set; }

    public Program()
    {
        Description = "This is a program about getters and setters.";
    }
}

class ProgramTest
{
    static void Main()
    {
        Program myProgram = new Program();
        Console.WriteLine(myProgram.Description);  // Allowed
        // myProgram.Description = "New Description";  // Not allowed
    }
}

In der class Program hat die Description-Eigenschaft einen private set, was bedeutet, dass sie von außerhalb der Klasse nicht geändert werden kann, wodurch die Integrität der Daten gewährleistet wird.

Vererbung und Overriding

Wenn Sie mit abgeleiteten Klassen arbeiten, können Sie die Getter- und Setter-Methoden außer Kraft setzen, um ihr Verhalten anzupassen. So können Sie beim Abrufen oder Setzen von Werten zusätzliche Logik hinzufügen.

public class Person
{
    public virtual string Name { get; set; }
}

public class Student : Person
{
    private string studentID;

    public override string Name
    {
        get { return base.Name; }
        set
        {
            if (!string.IsNullOrEmpty(value))
                base.Name = value;
        }
    }
}
public class Person
{
    public virtual string Name { get; set; }
}

public class Student : Person
{
    private string studentID;

    public override string Name
    {
        get { return base.Name; }
        set
        {
            if (!string.IsNullOrEmpty(value))
                base.Name = value;
        }
    }
}

In diesem Beispiel erbt die Student-Klasse von Person und überschreibt den Setter der Name-Eigenschaft. Es fügt eine Validierungsprüfung hinzu, bevor der Name gesetzt wird, um sicherzustellen, dass er nicht leer oder null ist.

Einführung der Iron Suite zur Verbesserung Ihrer C#-Entwicklung

Iron Suite ist eine Sammlung von Forschungswerkzeugen, die die C#-Entwicklungsfähigkeiten erheblich verbessern. Es umfasst IronPDF, IronXL, IronOCR und IronBarcode. Jedes dieser Tools dient einem bestimmten Zweck und kann in verschiedene Aspekte von C# integriert werden.

IronPDF - Ein leistungsfähiges PDF-Management-Tool

Erfahren Sie mehr über IronPDF, eine Bibliothek, die es Entwicklern ermöglicht, PDF-Dokumente in C# zu erstellen, zu lesen und zu bearbeiten. Egal, ob es um die Konvertierung von HTML in PDF oder die Verwaltung von PDF-Metadaten durch Getter und Setter geht, IronPDF hat die richtige Lösung für Sie.

IronPDF zeichnet sich durch die HTML-zu-PDF-Konvertierung aus und gewährleistet eine präzise Erhaltung der ursprünglichen Layouts und Stile. Es ist perfekt geeignet, um PDFs aus webbasierten Inhalten wie Berichten, Rechnungen und Dokumentationen zu erstellen. Mit Unterstützung von HTML-Dateien, URLs und rohen HTML-Zeichenfolgen produziert IronPDF mühelos hochwertige PDF-Dokumente.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}
using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // 1. Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // 2. Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // 3. Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

IronXL - Excel-Bearbeitung leicht gemacht

Beim Arbeiten mit Excel-Dateien vereinfacht die IronXL Excel Library den Lese- und Schreibprozess. Mit diesem Tool können Sie die privaten und öffentlichen Strings oder Integer von Excel-Dateien manipulieren, ähnlich wie Sie Daten innerhalb einer Klasse mit der gleichen Syntax für Getter und Setter in C# behandeln können.

IronOCR - Optische Zeichenerkennung in C#

Entdecken Sie IronOCR, eine Optical Character Recognition-Bibliothek, die Bilder in durchsuchbaren Text übersetzt. Wenn Ihre Anwendung das Lesen von Text aus gescannten Dokumenten beinhaltet, können die leistungsstarken Funktionen von IronOCR leicht integriert werden. Sie kann mit privaten Feldern und öffentlichen String-Beschreibungen umgehen, genau wie Sie es von der Klasse Person oder der Klasse Student aus dem vorherigen Beispiel erwarten würden.

IronBarcode - Bibliothek zum Lesen und Schreiben von Barcodes

Entdecken Sie die IronBarcode-Funktionen für Anwendungen, die Barcode-Lesen und -Schreiben erfordern. Sie ermöglicht sowohl den direkten Zugriff auf Barcodedaten als auch die Anpassung durch automatische Eigenschaften, genau wie die in der C#-Programmierung verwendeten Getter und Setter.

Iron Suite und Getters and Setters

Das Iron Suite-Paket lässt sich nahtlos in die C#-Entwicklung integrieren, einschließlich Getter und Setter. Diese Tools sind für jedes C#-Projekt von großem Wert.

Schlussfolgerung

Zusammengefasst:

  1. Getter und Setter: Sie helfen beim Zugriff auf und der Änderung von privaten Feldern einer Klasse.

  2. Auto Properties: Eine elegante Möglichkeit, automatische Getter und Setter mithilfe von automatisch implementierten Eigenschaften zu haben.

  3. Access Modifiers: Sie helfen dabei, den Zugriff auf Eigenschaften fein abzustimmen.

    Inzwischen sollten Sie ein solides Verständnis für die Verwendung von Gettern und Settern in C# haben.

    Die Tool-Suite von Iron Suite bietet C#-Entwicklern unglaubliche Funktionen. Jedes dieser Produkte, einschließlich IronPDF, IronXL, IronOCR und IronBarcode, kommt mit einer kostenlosen Testversion der Iron Software Tools, die es Ihnen ermöglicht, diese leistungsstarken Bibliotheken in Ihre Projekte zu integrieren und zu erkunden, ohne anfängliche Investitionen.

    Wenn Sie bereit sind, sich zu verpflichten, beginnen die einzelnen Lizenzen ab $749. Wenn Sie feststellen, dass mehr als eines dieser Tools Ihren Anforderungen entspricht, können Sie die Möglichkeit nutzen, das komplette Iron Suite-Paket zum Preis von nur zwei Einzellizenzen zu erwerben.

Chipego
Software-Ingenieur
Chipego hat eine natürliche Fähigkeit zum Zuhören, die ihm hilft, Kundenprobleme zu verstehen und intelligente Lösungen anzubieten. Er trat dem Iron Software-Team 2023 bei, nachdem er einen Bachelor of Science in Informationstechnologie erworben hatte. IronPDF und IronOCR sind die beiden Produkte, auf die sich Chipego konzentriert hat, aber sein Wissen über alle Produkte wächst täglich, da er neue Wege findet, Kunden zu unterstützen. Er genießt die Zusammenarbeit bei Iron Software, da Teammitglieder aus dem gesamten Unternehmen ihre unterschiedlichen Erfahrungen einbringen und so zu effektiven, innovativen Lösungen beitragen. Wenn Chipego nicht an seinem Schreibtisch sitzt, kann man ihn oft bei einem guten Buch oder beim Fußballspielen antreffen.
< PREVIOUS
C# Logische Operatoren (Wie es für Entwickler funktioniert)
NÄCHSTES >
C# Split String (Wie es funktioniert für Entwickler)