Variable außerhalb der Main-Methode

José

Neues Mitglied
Hallo,
ich habe ein kleines Programm geschrieben, um die Fakultät von 9 zu berechnen. Dabei habe ich eine Variabel außerhalb der Main-Methode deklariert, die dann in der Main-Methode nicht erkannt wurde. Warum nicht?
Code:
namespace Übung2 {
internal class Program {
  int produkt = 1;
public
  static void Main(string[] args) {

    for (int i = 0; i < 9; i++) {
      produkt *= i + 1;
    }

    Console.WriteLine(produkt);
  }
}
} // namespace Übung2
Danke schon mal.
 
Eine statische Methode kann auf keine Felder der eigenen Klasse zugreifen. Überleg mal, statisch bedeutet ja, dass die Methode aufgerufen werden kann, ganz ohne dass eine Instanz der Klasse überhaupt instanziiert sein muss. Es ist also keineswegs garantiert, dass bei Aufruf einer statischen Methode Klassenfelder überhaupt existieren. Daher die Fehlermeldung.
 
@BAGZZlash hat es ja schon gesagt - product ist ein Objektattribut, auf das du in "Objektfunktionen" - also Methoden - zugreifen kannst. Main ist aber eine "Klassenfunktion", und von dort aus kannst du nur auf Klassenattribute zugreifen.
 
Zurück
Oben Unten