2017-02-12 4 views
-5
using System; 
class Program 
{ 
    class Person { 
     protected int Age {get; set;} 
     protected string Name {get; set;} 
    } 
    class Student : Person { 
     public Student(string nm) { 
      Name = nm; 
     } 
     public void Speak() { 
      Console.Write("Name: "+Name); 
     } 
    } 
    static void Main(string[] args) 
    { 
     Student s = new Student("David"); 
     s.Speak(); 
    } 
} 

---> Ausgabe: Name: DavidKann jemand den folgenden Code erklären?

In dem obigen Code, den wir haben 'bekommen' und 'Set' Methoden ..

Jetzt ...

using System; class Program { class Person {

 protected string Name; 
    } 
    class Student : Person { 
     public Student(string nm) { 
      Name = nm; 
     } 
     public void Speak() { 
      Console.Write("Name: "+Name); 
     } 
    } 
    static void Main(string[] args) 
    { 
     Student s = new Student("David"); 
     s.Speak(); 
    } 
} 

---> Ausgabe: Name: David

Hier habe ich entfernt die 'get' und 'set' Methoden, aber der Ausgang war gleich. Was nützen diese Methoden dann?

+1

Ihre Frage unklar ist. Es gibt keine Methoden mit dem Namen "get" oder "set" in dem Code, den Sie gepostet haben. –

+0

Ein Element, das in einer Klasse deklariert ist, ohne "get" und "set" zu verwenden, wird als Feld und nicht als Propery betrachtet. Felder werden unterschiedlich behandelt. Das '{get; set;}' ohne tatsächliche Funktionen wird "auto property accessors" genannt, was das Element zu einer Eigenschaft mit einem automatischen Hintergrundfeld macht. – Claies

+1

als Beispiel, 'Student.Name' würde im ersten Beispiel funktionieren, würde aber im zweiten Beispiel nicht funktionieren. – Claies

Antwort

2

können Sie sicherstellen, dass keine falschen Eingaben gemacht werden, oder grundsätzlich zusätzlichen Code ausführen, wenn die Eigenschaft geändert wird ...

Verwandte Themen