Kann mir jemand helfen bei C#?

 - (Computer, Schule, Software)  - (Computer, Schule, Software)

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Naja, Du hast mehrere Klassen, welche eine Funktion "static void Main" beinhalten, oder in derselben Klasse sind mehrere solche Methoden.

Ich glaub, Du hast nicht ganz verstanden, was Namespaces tun. Namespaces gruppieren Klassen, welche eine ähnliche Funktion haben oder zu einer großeren funktionalen Einheit gehören. Man muss aber überhaupt keine Namespaces verwenden.

Was Du vermutlich denkst ist, dass jeder Namespace ein eigenes Programm darstellt. Das ist nicht so. Ganz im Gegenteil.

Was Du tun solltest: Implementiere Deine Dinge in getrennten Klassen, mache eine separate Klasse mit einer Main-Methode und erzeuge dann Instanzen von den Klassen, die was tun sollen und arbeite mit diesen.

Und was soll ich jetzt machen? Immer wenn ich eine Main Methode wegstreiche habe ich über 50 Fehler also was soll ich jetzt tun? Sollt ich alles in ein namespace machen damit es klappt?

0
@GeschichteAlex

Nein, Du sollst es richtig machen. Es darf nur eine Main-Methode geben. Entweder machst Du in der Projektmappe für jede Sache, die Du implementieren sollst, ein eigenes Projekt (was zu einer eigenen EXE-Datei führt), oder Du implementierst eben jede Sache in einer eigenen Klasse und nutzt diese Klassen innerhalb der einen einzigen Main Methode Deines Projekts.

Und wenn das rauslöschen der übrigen Main-Methoden zu Compilerfehlern führt, dann ist da einiges im Argen.

0

Ah okay der halbe Kommentar hat nicht geladen aber werde ich machen danke

0

Es steht noch immer es sind mehrere Einstiegspunkte definiert obwohl ich bei einer anderen Klasse static void main() hingeschrieben habe. Ich habe nicht so ganz verstanden was du mit Instanzen meinst. Liegt es an die Instanzen oder so weil habe keine Ahnung was du meinst?

0
@GeschichteAlex

Oh weh...

Durchsuche die gesamte Projektmappe mit Umsch + Strg + F und suche nach "Main(". Dann müsstest Du mehr als ein Ergebnis finden. Wenn das so ist, dann lösche alle diese Methoden bis auf die, die wirklich beim Programmstart ausgeführt werden soll (oder kommentiere sie aus, damit Du siehst, was drinstand).

Eine Instanz ist ein Objekt von einer Klasse. Mit Klassen selbst arbeitet man nicht (zumindest nicht normalerweise). Man arbeitet mit Objekten (= Instanzen) von Klassen, welche getrennte Einheiten darstellen.

Beispiel

Das ist die Klasse:

public class Test
{
  public void SayHello(string name)
  {
    Console.WriteLine("Hallo {0}", name);
  }
}

Das ist die Instanz:

Test helloSayer = new Test();

Das ist ein Aufruf einer Methode auf dem Objekt.

helloSayer.SayHello("GeschichteAlex");

Wenn irgendwo vor einer Deiner Methoden (außer der Main-Methode) jetzt ein static davorsteht, dann bedeutet das, dass Du dieses Konzept nicht verstanden hast und erst einmal lernen solltest, was Klassen und Objekte sind.

PS: Damit meine ich nicht, dass static-Methoden generell unnütz sind, nein, ganz im Gegenteil - aber nur, wenn man weiß, warum man diese verwendet und warum man es in 90% der Fälle nicht tut. Aber wenn Dein komplettes Projekt NUR aus statischen Methoden besteht, dann hast Du was missverstanden.

0
@GeschichteAlex

Implementieren bedeutet hier "in der Programmiersprache umsetzen". Was Du tun sollst habe ich geschrieben. Ansonsten: Kauf Dir ein Buch und lerne Schritt für Schritt.

0

Was möchtest Du wissen?