Eigenschaft in der C# Kategorie |
 |
 |
Eigenschaft in der C# Kategorie
|
Wie machen wir Mitgliedsvariablen irgendeiner Kategorie au�erhalb von der Kategorie zug�nglich? In die meisten Sprachen einschlie�lich C++, bilden wir die Mitgliedsvariablen �ffentlichkeit, damit wir einen Fall der Kategorie verursachen k�nnen und die �ffentlichkeit direkt zug�nglich zu machen auff�ngt, wie gezeigt unten:
|
using System;
class Hello
{
static void Main () {
Console.WriteLine("hello, world");
}
}
|
|
Die oben genannte Kategorie l��t eine �ffentlichkeit auffangen: Farbe. Wir k�nnen dieses zug�nglich machen auffangen au�erhalb von der Kategorie wie gezeigt unten:
|
Car car = new Car ();
car. Color = "red";
string color = car.color;
|
|
Aber dieses ist die alte Weise! Dieses wurde ruhige Arbeit mit C#, aber die vorgeschlagene Ann�herung ist, �Eigenschaft� anstelle von direkt zug�nglich machenden Mitgliedsvariablen zu benutzen. Das folgende Code snippet zeigt, wie man �Eigenschaft� in einer Kategorie verursacht.
|
public class Car
{
// private fields.
private string color;
// constructor
public Car()
{
}
public string Color
{
get
{
return color; // return the value from privte field.
}
set
{
color = value; // save value into private field.
}
}
}
|
|
Die oben genannte Kategorie l��t privates ein - Farbe auffangen. Dann haben wir ein �Eigenschaft� benannte �Farbe�, die verwendet wird, um das private darzustellen auffangen. Merken, da� auffangene privat ist und die Eigenschaft allgemein ist. (Wir haben den gleichen Namen mit oberem/Kleinschreibung verwendet, um die �Eigenschaft� darzustellen und �auffangen�, aber wir k�nnen jeden m�glichen Namen geben, den wir. w�nschen)
|
Jede Eigenschaft hat zwei Teile:
erhalten
einstellen
|
Das erhaltenteil wird durchgef�hrt, wenn wir den Wert der Eigenschaft wie gezeigt unten zug�nglich machen:
|
Car car = new Car();
string color = car.Color;
|
|
Wenn sie durchgef�hrt werden, erhalten die oben genannten Accessor zur�ckbringen den Wert, der in auffangene �Farbe� gespeichert wird. Das Satzteil wird durchgef�hrt, wenn wir einen Wert der Eigenschaft wie gezeigt unten zuweisen:
|
Car car = new Car();
car.Color = "RED";
|
|
Wenn es durchgef�hrt wird, weist der oben genannte Satz Accessor den Wert �ROT� dem privaten auffangen �Farbe� zu. (Anmerkung, die �Wert� ein Schl�sselwort ist, das den Wert hat, der ihm. zugewiesen wird)
|
So ist was der Unterschied?
|
Auf dem ersten Blick gibt es keinen Unterschied! Wir k�nnen das gleiche Verhalten erzielen, indem wir 2 unterschiedliche Methoden schreiben (wie SetColor (...), GetColor ()).
|
Erster Vorteil des Verwendens der Eigenschaft ist, Codeblickreinigungsmittel als, 2 verschiedene Methoden habend. Wir k�nnen eine Eigenschaft einfach benennen, als ob es auffangene in der Kategorie war.
|
Gut dann k�nnen wir fragen, warum es 2 Methoden bilden, wir k�nnen es eine �ffentlichkeit auffangen lassen, damit wir sie zug�nglich machen k�nnen, indem wir einen Fall der Kategorie verursachen.
|
Der Hauptvorteil, der mit einer Eigenschaft anstelle von einer �ffentlichkeit �berm��ig ist, fangen ist, mit der Eigenschaft, wir erh�lt eine Wahrscheinlichkeit, wenige Linien des Codes (wenn wir w�nschen), in die erhalten und Satz Accessors zu schreiben auf. So k�nnen wir irgendeine G�ltigkeitserkl�rung durchf�hren, oder jede m�gliche andere Logik, bevor sie irgendwelche Werte zur�ckbringt oder dem privaten zuweist, fangen auf. Die ge�nderte Kategorie unten sehen:
|
public class Car
{
// private fields.
private string color;
// constructor
public Car()
{
}
public string Color
{
get
{
if ( color == "" )
return "GREEN";
else
return color;
}
set
{
if ( value == "" )
thrown new Exception ("Wrong value.");
else
color = value;
}
}
}
|
|
Uns das erhaltenteil zuerst analysieren lassen. Hier �berpr�fen wir, ob es einen g�ltigen Wert in auffangene �Farbe� gibt, bevor wir den Wert zur�ckbringen. Wenn er leer ist, erhalten wir eine Wahrscheinlichkeit, einen Default-Wert �Gr�n� zur�ckzubringen. Auf diese Weise, k�nnen wir �berpr�fen, ob whoever die Eigenschaft �Farbe� erh�lt immer eine g�ltige Farbe, nie eine leere Zeichenkette benennt.
|
Im Satzteil tun wir eine G�ltigkeitserkl�rung, um sicherzustellen, da� wir einen g�ltigen Wert immer unserem auffangen zuweisen. Wenn jemand eine leere Zeichenkette der �Farbe� Eigenschaft zuweisen, erh�lt er eine Ausnahme (St�rung).
|
Car car = new Car();
car.Color = "";
|
|
Der oben genannte Code wirft eine St�rung, weil wir versuchen, eine leere Zeichenkette zuzuweisen und der Satz Accessor eine St�rung wenn es eine leere Zeichenkette wirft. Auf diese Weise, k�nnen wir �berpr�fen, ob wir erlauben, da� nur g�ltige Werte zugewiesen werden.
|
So sch�tze ich, da� jetzt du den Zweck �der Eigenschaft� sch�tzen w�rdest. So f�ngt no more �ffentlichkeit auf! Privates immer haben auff�ngt und schreibt allgemeine Eigenschaften als Verpackung f�r sie wenn erforderlich, um sie au�erhalb der Kategorie auszusetzen.
|
 |
 |
Schl�sselwort Eigenschaft in der C# Kategorie, c# xml, c# c++, c# Netz, c# area per informazioni, c# dotnet, vb c#, c# Beispiel, Bekehrter c#, c# Steuerung, Asp c#, private Eigenschaft, c# Form, csharp c#, kundenspezifisches c#, c# Anwendung, c# Probe, addieren c#, Gebrauch c#, Eigenschaften Eigenschaft, c# Daten, c# verursachen,
|