In grundlegenderen Begriffen könnte man sich vorstellen, dass die Botschaft sagt:
Ihre Klasse 'Programm' scheint nur Methoden zu enthalten, die als statisch deklariert sind, und kann daher nicht an einer Vererbungshierarchie teilnehmen. Deklarieren Sie es als statisch (oder versiegelt, wenn Sie auf eine alte Version von .net abzielen, die keine statischen Klassen unterstützt), um die Designstimmung genauer wiederzugeben
Es ist eine Empfehlung, Ihre Klasse als statisch zu markieren, da sie nur statisches Material enthält. Dies verhindert, dass jemand den Fehler macht, zu versuchen, davon zu erben, und denkt, dass er mit der geerbten Version etwas Nützliches in Bezug auf die Vererbung tun kann
Microsoft markiert es für Sie nicht als statisch, da das Programm an sich nichts Besonderes ist. Sie könnten nicht statische Methoden einfügen, oder Sie könnten Ihre static void Main
in eine andere Klasse wie Person einfügen, die sofort instanziierbar ist.
class Person{
public string Name {get;set;}
static void Main(){
Person p = new Person();
p.Name = Console.ReadLine();
}
}
Das würde gut funktionieren; Eine Klasse muss nicht statisch sein, um den Anwendungseinstiegspunkt zu hosten. In diesem Fall kann die Klasse nicht statisch sein, da sie nicht statische Mitglieder hat. Es kann (und wird hauptsächlich) in der Hauptsache instanziiert werden. Es heißt nicht Programm; Es gibt nirgendwo eine Klasse namens Programm und diese winzige App wird immer noch ausgeführt (macht nicht viel ..)
In Ihrem Fall tun Sie entweder wie empfohlen und fügen Sie Ihrer Klasse einen statischen Modifikator hinzu, da dadurch Ihr Programm etwas robuster konstruiert wird, oder fügen Sie ein Instanzmitglied hinzu, wenn Sie sich einen gültigen Grund für die Instanziierung des Programms vorstellen können, oder ignorieren Sie die Nachricht und fahren Sie mit Ihrer nicht statischen Klasse fort, die nur statische Methoden enthält - es wird immer noch funktionieren