2016-11-18 6 views
-2

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

+2

Verweise ein gutes Buch –

+2

https://msdn.microsoft.com/en-us/library/ms229006(v=vs.110).aspx –

+0

Mögliches Duplikat von [Eigenschaften gegen Methoden] (http: // stackoverflow. com/questions/601621/Eigenschaften-vs-Methoden) – Tim

Antwort

2

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!

0

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.‘

enter image description here

Verwandte Themen