-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?
Ihre Frage unklar ist. Es gibt keine Methoden mit dem Namen "get" oder "set" in dem Code, den Sie gepostet haben. –
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
als Beispiel, 'Student.Name' würde im ersten Beispiel funktionieren, würde aber im zweiten Beispiel nicht funktionieren. – Claies