Wann Methoden und Eigenschaften in C# zu verwenden? Sie können dasselbe tun, aber wenn Sie beide verwenden. Und ist es auch möglich, ein ganzes Objekt über C# -Eigenschaft anstelle von Einzelwert festzulegen.?C# Methoden und Eigenschaften
Antwort
Eine Eigenschaft ist mehr oder weniger das, was wir verschiedene Dinge über eine Klasse zu beschreiben. Sie lassen uns definieren, was eine Klasse tun kann und worum es in der Klasse geht. Berücksichtigen Sie die folgenden Punkte:
namespace Example
{
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public DateTime Birthday { get; set; }
}
}
Name, Alter und Geburtstag würden als Eigenschaften der Klasse Person betrachtet. Sie definieren, was eine Person ist und geben uns einen Weg, den Klassenwert zu geben. Eine Methode würde dann verwendet werden, um verschiedene Dinge mit den Eigenschaften zu tun.
public string GetName()
{
return Name;
}
public void SetName(string name)
{
Name = name;
}
diese sinnlosen Berücksichtigung Eigenschaft des Namens wäre jedoch ist die öffentliche Bedeutung kann es erreicht werden, wenn wir eine Instanz der Klasse Person zu erstellen: Sie könnten eine Methode zu erhalten oder den Wert einer Eigenschaft wie schreiben. Die obigen Methoden würden verwendet, wenn wir die Name-Eigenschaft festlegen, aber privat beibehalten möchten. Ein anderes Beispiel für eine Methode wäre, wenn wir eine Art sagen möchten, eine neue Instanz der Personenklasse zu erstellen. Mit dem Standard-Visual Studio lässt Sie eine neue Person Objekt wie so instanziiert:
Person jim = new Person();
aber wir auch unsere eigenen „Konstruktor“ Methode schreiben können, damit wir eine neue Person erstellen und es ist Eigenschaften zugleich.
public Person(string name, int age, DateTime birthday)
{
Name = name;
Age = age;
Birthday = birthday;
}
Jetzt haben wir eine einfache, schlanke Art und Weise ein neues Person-Objekt zu instanziiert, die eine Konstruktor-Methode verwendet, und wir können wie so ein neues Person-Objekt erstellen:
Person jim = new Person("Jim", 25, DateTime.Today);
Aber die Verwendung von Methoden hör nicht dort auf. Da DateTime die Art und Weise darstellt, wie wir die Birthday-Eigenschaft darstellen, könnten wir eine Methode schreiben, die eine Zeichenfolge in die entsprechende DateTime umwandeln kann.
public DateTime ConvertToDateTime(string date)
{
DateTime temp;
DateTime.TryParse(date, out temp);
return temp
}
Jetzt können wir unsere Konstruktor ändern wie folgt aussehen:
public Person(string name, int age, string birthday)
{
Name = name;
Age = age;
Birthday = ConvertToDateTime(birthday);
}
Und kann eine neue Person Objekt wie folgt instanziiert:
Person jim = new Person("Jim", 25, "1/10/1995");
Ein letzter Punkt, als @vivek sagte Nuna, finde ein gutes Buch! Ein großer, den ich in früheren C# -Klassen verwendet habe, wäre Murach's book on C#. Außerdem enthält MSDN.com die gesamte Dokumentation, die Sie zum Codieren in C# benötigen. Versuchen Sie diese link, um mehr über Eigenschaften oder diese link zu lernen, um mehr über Methoden zu lernen. Schließlich, ein ausgezeichnetes Tutorial, das ich fand, um C# zu lernen, ist Scott Lilly's Guide to C#. Du lernst nicht nur alles über C#, du wirst auch ein ziemlich einfaches und einfaches textbasiertes RPG erstellen können!
Ein proppertie ist nur eine kurze Hand und wird auf dem Hintergrund eine öffentliche get-Methode erstellen und ein öffentlichen gesetzt Verfahren und ein eigenes Feld, um den Wert zu speichern.
// example propertie
public string Name { get; set; }
// at run time it is the same as:
private string Name;
public string GetName(){
return this.Name;
}
public string SetName(string name){
this.Name = name;
}
See Bild: die Beispielklasse hat nur eine proppertie in Code, aber wenn Sie Reflexion verwenden, um alle Mitglieder aus der Sample-Klasse zu erhalten, die Sie, dass während der Laufzeit diese Methoden sehen erzeugt aber nicht sichtbar im Code.
set_name()
get_name()
‚bemerken den Namen privaten Bereich wird nicht gezeigt, weil es privat und nicht visable für außen, aber genrated ist.‘
- 1. C# Auswahl zwischen Eigenschaften und Methoden
- 2. Sind C# -Eigenschaften tatsächlich Methoden?
- 3. Repeater .net Eigenschaften und Methoden
- 4. JQuery-Methoden und DOM-Eigenschaften
- 5. Eigenschaften und Methoden zur Laufzeit in C# 4.0 anhängen?
- 6. Statische Methoden/Eigenschaften in C++ CLI-Schnittstelle und Implementierungsklassen
- 7. ReSharper C# Benennungsstil für private Methoden und Eigenschaften
- 8. Zugriff auf Methoden und Eigenschaften einer vererbten Klasse in C#
- 9. Lua: Methoden und Eigenschaften beim Exportieren von Klassen aus c
- 10. Moq und virtuelle Eigenschaften und Methoden
- 11. Java und C# -ähnliche Eigenschaften
- 12. .NetStandard: Fehlende Typ Methoden und Eigenschaften
- 13. So erstellen [PSCustomObject] mit Eigenschaften und Methoden
- 14. zwei Klassen mit gemeinsamen Methoden und Eigenschaften
- 15. Verfestigung von JavaScript-Objekten, Methoden und Eigenschaften
- 16. beliebiges Objekt Methoden und Eigenschaften in JavaScript
- 17. Aufrufen von COM-Eigenschaften und Methoden
- 18. Python: Prädikat Methoden als Eigenschaften?
- 19. Weitere einfache Weise Zugang abgeleiteten Eigenschaften und Methoden Basiszeiger
- 20. C# Standardsichtbarkeit der Eigenschaften
- 21. Wie minify/Dokument und Fenster Eigenschaften und Methoden uglify
- 22. Möglich, alle PHP-Klassen und ihre Methoden und Eigenschaften aufzulisten?
- 23. C# schreibgeschützte berechnete Eigenschaften, sollten sie Methoden sein?
- 24. Was sind die besten Methoden zum Verwalten von Eigenschaften/Feldern (und Daten) und Methoden in Klassen?
- 25. UML-Klassendiagramm: Wie schreibt man abstrakte Methoden und Eigenschaften?
- 26. Objective-C Eigenschaften und Speicherverwaltung
- 27. C# Reflection und Getting-Eigenschaften
- 28. Wie DataRow und DataTable in C# mit zusätzlichen Eigenschaften und Methoden zu erweitern?
- 29. Mischen C Structs und Objective-C Eigenschaften
- 30. C# -Eigenschaften und Verkettungsmethoden fließend setzen
Verweise ein gutes Buch –
https://msdn.microsoft.com/en-us/library/ms229006(v=vs.110).aspx –
Mögliches Duplikat von [Eigenschaften gegen Methoden] (http: // stackoverflow. com/questions/601621/Eigenschaften-vs-Methoden) – Tim