Eigenschaften und Zugriffs
Eigenschaften und Accessor so miteinander stark korreliert sind, daß es unmöglich ist, sie getrennt zu diskutieren. Immobilien (genannt Properties –. Manchmal muss man mit dem Begriff aus dem englischen Namen „propercje“ oder verkürzte Eigentum abgeleitet treffen können) ist eine spezielle Konstruktion, die Aspekte der beiden Felder und Methoden kombiniert. Es ermöglicht Ihnen den Zugriff auf private Variablen Objekt durch eine spezielle Methode, die Zugriffsmethoden. Ein wichtiges Merkmal ist, dass die Benutzer-Objekt sieht sie als normale Variablen, der Öffentlichkeit zur Verfügung. Sie ermöglichen es, einfache Operationen durchzuführen, wie beispielsweise eine Variable, und auch die Verwendung von deren Schnittstellen zu ermöglichen.
Zugriffsmethoden verwendet werden, sind äquivalent für eine lange Zeit in der objektorientierten Programmiersprachen, was zu lesen und zu privaten Klassenfelder aufzunehmen. Durch die Kapselung, sollten alle Felder in der Klasse ausgeblendet werden, und schließlich den Zugang zu ihnen durch das Verfahren implementiert zusätzliches Bereitstellen Steuereingänge. Diese Verfahren werden als „setterami“ und „getterami“ bezeichnet.
Menu wpisu
Zugriffsmethoden und settery i gettery
Syntax-Code, der Setter und Getter verwendet wird unten dargestellt:
class Wartosci { private int liczba; public int get_liczba() { return liczba; } public void set_liczba(int iLiczba) { liczba = iLiczba; } }
Beispiel scheint zu sein, eine bequeme und konsistente, aber die Methoden sind nicht verknüpft, können an unterschiedlichen Orten befinden umfangreiche Klasse werden, und im Fall von vielen Variablen ab, kann dies für den Umgang mit vielen Code-Zeilen zu wachsen. Methoden wie folgt:
static void Main(string[] args) { Wartosci wart = new Wartosci(); //Den Wert einstellen wart.set_liczba(12); //Lesen Werte MessageBox.Show(wart.get_liczba()); }
Accessor führen genau die gleiche Aufgabe, aber die Verwendung der Variablen wird bequemer. Im Folgenden werden zuvor vorgestellten Beispiele zur Verwendung von Zugriffs:
class Wartosci { private int _liczba; public int liczba { get { //aktiviert, wenn ein Wert gelesen return _liczba; } set { //aktiviert, wenn der Wert gesetzt wird _liczba = value; } } }
Im Wasser gibt es zu erhalten und Set-Methoden, entsprechend Verfahren im vorherigen Beispiel sind sie. Zusätzlich sind diese Verfahren für den Compiler tatsächlich auftreten. Zum Zeitpunkt der Deklaration die Eigenschaften genannt liczba, den Compiler reserviert Methodennamen get_liczba und set_liczba, so dass es nicht möglich ist, sie wieder zu definieren, und der Versuch wird fehlschlagen:
Type ‚wartości‘ schon ein Mitglied namens „get_liczba ‚mit den gleichen Parametertypen behält
Ein interessantes Element der Eigenschaft ist die Schlüsselwort value. Es ist eine temporäre Variable ermöglicht es Ihnen, Transaktionen auf dem aktuell eingegebenen Wert zu machen, zum Beispiel. Wenn die Zuordnung liczba = 10; Variablenwert wird auf 10 gesetzt werden.
Verwendung eines variablen durch die Eigenschaften wie folgt deklariert:
static void Main(string[] args) { Wartosci wart = new Wartosci(); //Einstellwerte wart.liczba = 12; //Lesewerte MessageBox.Show(wart.liczba); }
Wie zu Beginn der Artikel erwähnt worden ist, sind Operationen wie auf einem gewöhnlichen variable öffentlich geteilt.
Die Design-Objekte
Alle Objekte können nur in eine Accessor Abrufen der Wert, sondern der Wert gesetzt Zugriffs oder beide Zugriffsmethoden zu einer Zeit. Dies ermöglicht eine variable mit begrenztem Zugang – die Variable schreibgeschützt, lesegeschützt oder Lese-Schreib. Immer get-Accessor muss nach Stichwort return.
Get-Accessor ist, wenn das Lesen von Werten, ein set-Accessor beim Einstellen von Werten aktiviert. Sie sind dann alle in Klammern Zugriffsoperationen enthalten. Aktionen gesetzt, um in akcesorach führen sollte nicht zu kompliziert sein. Darüber hinaus ist falsch Programmierstil, um das Feld in der get-Accessor, zB diese ändern.
public int Liczba { get { return liczba++; //Diese sollten nicht verwendet werden } }
Es ist jedoch auch zulässig, die Berechnung des Rücklaufwert , zB.:
public string Nazwa { get { return nazwa != null ? nazwa : "no name"; } }
Anwesen besteht aus nur zwei Elemente: Setzt und zu bekommen, ohne die Möglichkeit des Herunterladens von Parametern. Es ist nicht erlaubt, zusätzliche Felder, Methoden und weitere Eigenschaften zu verwenden. Eigenschaften müssen mindestens eine Zugriffs.
Summarische Anmeldung
Vertauschen der üblichen Methoden zur Immobilie teilweise half bei der Organisation des Codes, aber nicht signifikant verkürzt werden. Da die Zugriffsmethoden häufig verwendet, wie in den zuvor beschriebenen Beispielen, haben sie nicht den Wert zu ändern, nur um den Zugang zum eingeführt (Version C # 3.0) summarische Anmeldung zu vermitteln.
Es reduziert den nachfolgenden Code:
class Wartosci { private int _liczba; public int liczba { get { return _liczba; } set { _liczba = value; } } }
in einer sehr kurzen Rekord:
class Wartosci { public int liczba{get;set;} }
Beide Datensätze gleich sind, weil der Compiler summarische Anmeldung zu entwickeln, als auch implizit erstellt einen privaten Box, die zugegriffen werden kann realisiert gespeichert Eigentum werden. Dies ermöglicht Ihnen, Einsparung deutlich zu reduzieren und die Transparenz-Code zu erhöhen.
Abschließend. Schreiben der oben summarische Anmeldung genannt liczba schafft implizit eine private Variable und Methodennamen get_liczba() und set_liczba() den Zugriff auf Variablen.
Betreiber und Eigenschaften
Eigenschaften im Gegensatz zu herkömmlichen Verfahren ermöglichen auch die Verwendung von Operatoren erfordern Lese- und Schreibwerte. Diese Operationen arbeiten ohne den Bau zusätzlicher Erklärungen. Die folgenden Operationen an den Werten der vorhergehenden Beispiele und Informationen, die Zugriffs ins Leben gerufen wurde:
static void Main(string[] args) { Wartosci wart = new Wartosci(); int m = wart.liczba; //Der Block get dla Eigenschaften wart.liczba = m; //Der Block set dla Eigenschaften wart.liczba -= 12; //Der Block get i set dla Eigenschaften wart.liczba += 18; //Der Block get i set dla Eigenschaften }
Aufsicht Wert
Die Werte der Felder, die veröffentlicht worden sind, ist nicht in irgendeiner Weise gesteuert. Dies kann zu schwerwiegenden Fehlfunktionen Klasse oder sogar das gesamte Programm zu führen. Fehler, die zu rasche Auslaufen des Programms sind viel besser als die langfristige, nicht zu geben von sich selbst, um die Fehler, die die Ergebnisse kennen. Die Suche nach solchen Fehler wird viel Zeit erfordern und oft verfolgen die Mehrheit der geschriebenen Code. Einige einfache Beispiele und Überwachung erfordern, sind: Sekunden / Minuten (1-60), Stunden (1-12 / 1-24), Bewertung (1-6), Evaluierungsstudien (2; 3; 3,5; 4; 4,5; 5) und viele andere. Beispiel-Code:
class Wartosci { private int _godzina; public int godzina { set { if (value >= 1 && value <= 24)//für eine 24-Stunden-Anzeige _godzina = value; } } }
Steuer-Eingangswerte in dem Code, der die Klassenobjekte verwendet, kann zu vielen Nebenwirkungen führen. Der Code muss an jedem Ort, wo Daten eingegeben wiederholt werden, kann der Entwickler es vergessen oder tun es nicht richtig, können Sie die Klasse, um falsche Werte schreiben spezifisch führen. Diese Gründe sind ausreichend, um die Korrektheit der gespeicherten Informationen zu gewährleisten. Der perfekte Ort, um die Eingabewerte zu kontrollieren sind Zugriffs gesetzt. Es ermöglicht Ihnen nicht nur auf Werte in einem leicht zu finden vor Ort zu definieren, sondern auch, um schnell die Regeln während des Programms zu ändern, zum Beispiel. Wenn der Umfang der Beurteilung würde 1-10 ändern.
Accessor dienen eine weitere wichtige Funktion mit den Steuerwerten zugeordnet. Lesen und Schreiben von Daten kann nicht eine einfache Variable sein. Was passiert, wenn bei der Arbeit mit Datenbanken und Felddaten werden in der Datenbank gespeichert? Holen Zugriffs in diesem Fall kann Sammlung der Werte und eine set-Zugriffsmethode überprüft, ob der Wert im Einklang mit den Typfelder in der Datenbank zu verfolgen und zu schreiben, wenn es korrekt ist. Der Entwickler nutzt die Klasse ist nicht wichtig, die Verbindung zur Datenbank, er den Wert als einfache Variable sieht. Die Arbeit auf dem gleichen Code für viele Programmierer ist auch einer der vielen Gründe, warum die die Nutzung der Immobilie.
In akcesorach können Sie andere Methoden verwenden. Wenn der Prüfwert unterliegt den gleichen Bedingungen wie für die Sekunden und Minuten, ist es möglich, das Verfahren zur Herstellung der Prüfwert und die anschließende Verwendung von ihnen in akcesorach vorzubereiten.
Denn was nützt Eigenschaften?
Wenn Sie es nicht geschafft, die Anwendungseigenschaften zu überzeugen haben, wird es noch zwei weitere Beispiele zu nennen.
Beispiel 1:
Angenommen, dass die Variable (int) in der Klasse ist das Resultat der Operation, und sein Wert ist ein Teil der aufgezeichneten Dateinamen. Nach den Änderungen im Programm gemacht wird, ist es notwendig, das Vorzeichen in der Zeichenname angehängt:
"wyniki_" + zmienna.ToString();
Ändern Namen im gesamten Programm kann sehr lange dauern, und es besteht immer die Gefahr einer Unterlassung von einigem Wert. Durch Verwendung seit dem Beginn der Eigenschaften der gesamten Operation würde sich auf eine Änderung in der get-Zugriffs begrenzen.
Beispiel 2:
In der Ausführung des Programms, die Notwendigkeit für das Zählen der Anzahl der Änderungen in der Variablen „liczba“. Um diese Funktionalität zu erreichen, würden alle Stellen, wo die Variable „liczba“ wird durch den neuen Wert ersetzt, und die Erhöhung in der sie die Gegen finden. Die Verwendung von Eigenschaften können Sie dies durch Ergänzung der set-Zugriffsmethode für eine zusätzliche Linie zu realisieren:
licznik++;
Technische Aspekte der Eigenschaften und Zubehör
- – Die Eigenschaften können Zugriffsmodifizierer haben: public, private, protected und internal. Der Zugriffsmechanismus können unterschiedliche Zugriffs Modifikatoren. Dank dieser Anwendung Variable lesen können öffentliche und somit von außen zugänglich sein, der Klasse und notieren Sie den Wert des privaten oder geschützt.
- – Die Eigenschaften können static sein, mit dem Schlüsselwort static deklariert. Dank dieser Funktion ist auch ohne Instanz verfügbar – das Objekt.
- – Eigenschaften können virtual sein, erklärte unter dem Stichwort virtuelle. Dies ermöglicht Ihnen, das Verhalten der Objekte in abgeleiteten Klassen nach Stichwort override ändern.
- – Eigenschaften können nicht const sein, da gibt es keine Notwendigkeit. Darüber hinaus bedeutet C # unterstützt keine const Methoden, Eigenschaften und Ereignisse.
- – Immobilien sind keine Variablen, so gibt es keine Möglichkeit, indem sie durch Stichworte ref oder out. Es ist völlig gerechtfertigt, da die Eigenschaft als eine Reihe von Methoden, die nicht eine bestimmte Stelle im Speicher darstellen.
- – Objekt genehmigt die Einrichtung von breakpoint, was verständlich ist, weil der Compiler sind die üblichen Methoden.
- – Immobilien in den interfaces platziert werden – das sind die Methoden, Felder in Schnittstellen sind verboten. Accessoreigenschaften können keine Implementierungen in der Schnittstelle, so dass ihre Rekord endet mit einem Semikolon: get; und setzen;
- – Eigenschaften abstrakte Klassen existieren nur in der Zusammenfassung.
Vorteile der Eigenschaften
Um die Vorteile der Verwendung von Eigenschaften kann als Haupt erwähnen zusammenzufassen:
- – Transparenz Code.
- – Zulassung Kurzschrift – die Erklärung.
- – Encapsulation Code.
- – Kompatibilität mit Schnittstellen.
- – Easy-Management-Anwendung.
- – Überprüfen Sie die Werte der Variablen.
- – Betrieb an Methoden wie normale Variable, mit den Operatoren +, –, =, + =, – = …
- – Viele andere, um den Komfort, die Sicherheit und die Verkürzung der Code gewährleisten.