Autor Beitrag
DiaryOfDreams
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Fr 12.02.10 08:49 
Wieso kann ich folgenden Code nicht ausführen?
Solange ich die einzelnen Array-Felder ausserhalb einer Methode initialisieren will meldet sich der Compiler mit einer Fehlermeldung. Warum?
Innerhalb der Methode "Main" ginge das problemlos.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
using System;
using System.Text;

namespace ConsoleApplication1
{
    class Test
    {
    }

    class Program
    {
        Test einTest = new Test();
        Test[] arr = new Test[3];
        arr[0] = new Test();

        static void Main(string[] args)
        {
        }
    }
}
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Fr 12.02.10 10:04 
Die Antwort geht in eine ähnliche Richtung wie bei Methodenaufruf nur innerhalb einer Methode möglich?.

Hinzu kommt, dass die Klasse Program eigentlich nur einen Rahmen für die Main-Methode bildet. Variable, die hier benutzt werden, dürfen deklariert werden, aber die Initialisierung muss zu einem fest definierten Zeitpunkt stattfinden, also während des Ablaufs von Main.

Vielleicht kannst du es dir so merken:
* Die Main-Methode ist das Hauptprogramm.
* Auch die Main-Methode muss zu einer Klasse gehören, also zu Program.
* Alles, was innerhalb von Program passiert (also jede Methode), muss von Main aus angestoßen werden.
* Auch der Aufruf eines Konstruktors ist der Aufruf einer Anweisung.

Jürgen
DiaryOfDreams Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Fr 12.02.10 10:26 
Okay, Danke.