Entwickler-Ecke

C# - Die Sprache - Wo startet das Programm?


Namenlosnameless - So 14.06.09 10:33
Titel: Wo startet das Programm?
Ich habe ein Toutorial ausgedruckt, von galileo Computing c#, darin ist ein Codebeispiel enthalten um Polymorphismus und virtuelle Funktionen zu erklären:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
using System;
public abstract class MusicServer
{
    public abstract void Play();
}
public class WinAmpServer : MusicServer
{
    public override void Play()
    {
        Console.WriteLine("WinAmpServer.Play()");
    }
}
public class MediaServer : MusicServer
{
    public override void Play()
    {
        Console.WriteLine("MediaServer.Play()");
    }
}
class Test
{
    public static void CallPlay(MusicServer ms)
    {
        ms.Play();
    }
    public static void Main()
    {
        MusicServer ms = new WinAmpServer();
        CallPlay(ms);
        ms = new MediaServer();
        CallPlay(ms);
    }
}


das Programm startet bei: public static void Main(); und springt dann wild umher um 2 Zeilen Code auszugeben!
Meine Frage ist das nur bei diesem Beispiel so dass das Programm bei der Main void beginnt? oder ist das überhaupt so?
und was passiert wenn es keine Main void gibt?


JüTho - So 14.06.09 11:33

Unter OpenBook: 2.2.5 Die Struktur einer Konsolenanwendung [http://openbook.galileocomputing.de/visual_csharp/visual_csharp_02_002.htm#mj7f5fd9fa34a867a97dcaca2d20c689e7] werden deine Fragen vollständig beantwortet.

Ich möchte das nur um folgende Formulierungen ergänzen: Jede NET-Anwendung muss genau eine Main-Methode enthalten. Dort beginnt der Programmablauf; im Prinzip endet er dort auch. Dies gilt gleichermaßen für Console- und WinForms-Anwendungen. Bei den üblichen IDEs und Vorlagen wird dies in eine Klasse Program in der Datei program.cs eingepackt; aber das ist nebensächlich (dein Beispiel-Code benutzt dafür die Klasse Test).

Jürgen


Namenlosnameless - So 14.06.09 12:25

oke! Danke! bin grad dabei die 50-100 seiten durchzuarbeiten wie dus gesagt hast!