Kürzel Accessoren und Mutatoren
Lerne ich C#, und Lerne darum, Felder private die Klasse, und mit Getter und Setter zu setzen-Methoden anstelle von Feldwerten.
Sind die get; set;
im Methode 1 und Methode 2 äquivalent? Z. B. ist eine Abkürzung von den anderen?
class Student
{
//Instance fields
private string name;
private int mark;
//Method 1
public string Name { get; set; }
//Method 2
public int Mark
{
get { return mark; }
set { mark = value; }
}
}
Schließlich würde Methode 2 verwendet werden, wenn Sie möchten, um zum Beispiel eine Berechnung durchführen bevor Sie-Einstellung oder einen Wert? wie beispielsweise die Umwandlung Wert um einen Prozentsatz oder Validierung? z.B.
class Student
{
//Instance fields
private string name;
private double mark;
private int maxMark = 50;
//Method 1
public string Name { get; set; }
//Method 2
public double Mark
{
get { return mark; }
set { if ( mark <= maxMark ) mark = value / maxMark * 100; }
}
}
Haben Sie einen Blick auf diese Antwort; es zeigt sich etwas im detail.
möglich, Duplikat der Was sind Automatische Eigenschaften in C# und was ist Ihr Zweck?
möglich, Duplikat der Was sind Automatische Eigenschaften in C# und was ist Ihr Zweck?
InformationsquelleAutor Gravy | 2013-05-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, Methode 1 ist eine Verknüpfung zu Methode 2. Ich empfehle Methode 1 verwenden, standardmäßig. Wenn Sie weitere Funktionen benötigen, verwenden Sie Methode 2. Sie können auch angeben, unterschiedliche zugriffsmodifizierer für get-und set -.
protected set { if ( mark <= maxMark ) mark = value / maxMark * 100; }
???Ja, das ist richtig.
Beachten Sie, dass der Name von getter/setter nicht zurückkehren wird/legen Sie die private string name, sondern eine interne variable, die Sie nicht haben direkten Zugang zum.
Vielen Dank, Und bin ich richtig zu sagen, dass ich nicht explizit deklarieren Sie die Felder
name
odermark
- aber ich kann einfach Referenz auf die MethodenName
undMark
innerhalb der Klasse / oder außerhalb derStudent
Klasse?Ja, das ist richtig. Name und Marke sind die automatischen Eigenschaften, so gibt es kein Feld sichern. Sie können die Referenz, die Sie direkt von innerhalb der Klasse. Wenn Sie sind öffentlich, Sie können auf Sie von außerhalb der Klasse als gut.
InformationsquelleAutor Robin
Ja, die
Method2
ist der Weg zu gehen, wenn Sie eine eigene getter-und setter-Funktion. Standardmäßig, wenn Sie verwenden, Method1, wird es eine Standard-Privateigentum intern behandelt. Bitte wenden Sie sich mit diesem URL für mehr details.Beispiel:
Ja, der Ansatz ist, um eine private variable, die get-und set mit einer öffentlichen Eigenschaft oder eine Funktion. Ich habe aktualisiert einen funktionierenden link und nun ein kleiner Beispiel-code FYR
InformationsquelleAutor Saravanan