Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Kann es Methoden(aufrufe) innerhalb von Methoden geben?
RafaelVogt
myCSharp.de - Member



Dabei seit:
Beiträge: 27

Themenstarter:

Kann es Methoden(aufrufe) innerhalb von Methoden geben?

beantworten | zitieren | melden

Hallo an Alle,

anstatt mich weiter damit zu beschäftigen, Code-Stückchen aneinanderzureihen um meine Ziele zu erreichen, habe ich mich dazu entschlossen, C# von Grundauf neu zu lernen. Dazu benutze ich das Buch C# 8 mit Visual Studio 2019 und arbeite dieses Auch durch. Nun zu meiner Frage:


namespace _02_Einführung_Variablen
{
    class Program
    {
        static void Main(string[] args)
        {
            int firstvalue;
            firstvalue = 1000;

            int secondvalue = 1000;
            
            int a = 1, b = 2;

            Console.WriteLine("firstvalue = {0}", firstvalue);
            Console.ReadKey();
        }
    }
}

Im Buch wird einerseits von Methoden und Anweisungen gesprochen und gesagt, dass Main hier die Methode ist, welcher 2 Schlüsselwörter vorangehen und dann wird bezüglich Console.WriteLine gesagt, dass dies auch eine Methode ist.

Kann es also Methoden innerhalb von Methoden geben, oder ist die Begrifflichkeit nicht ganz korrekt, oder verstehe ich hier was falsch?

MFG NewBee
private Nachricht | Beiträge des Benutzers
robbyrc
myCSharp.de - Member



Dabei seit:
Beiträge: 317
Herkunft: Passau

beantworten | zitieren | melden

Servus,

Deine Main-Funktion sowie Console.WriteLine sind beides Methoden, das ist soweit korrekt. Ich würde es in deinem Fall jedoch so spezifizieren:

Deine "Main"-Methode ist eine Methodendeklaration, d.h. du definierst bzw. erstellst selbst eine Methode, die bestimmte Anweisungen ausführt

Das Console.WriteLine ist ein Methodenaufruf, d.h. du rufst eine bestehende Methode des .NET Frameworks, oder auch eine selbst von dir deklarierte Methode auf.


Mit diesen Begriffen gilt dann folgendes: Du kannst keine Methode innerhalb einer anderen Methode deklarieren (Ausnahme sind anonyme Methoden), allerdings kannst du beliebige Methoden aus einer anderen Methode aufrufen. Und dies sowohl mehrfach, als in Schleifen und auch verschiedenen Ebenen.

Hoffe das machts etwas klarer :)


Daniel
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von robbyrc am .
private Nachricht | Beiträge des Benutzers
RafaelVogt
myCSharp.de - Member



Dabei seit:
Beiträge: 27

Themenstarter:

beantworten | zitieren | melden

Vielen herzlichen Dank. Jetzt ist das Chaos wieder geordnet (-:
private Nachricht | Beiträge des Benutzers
RafaelVogt
myCSharp.de - Member



Dabei seit:
Beiträge: 27

Themenstarter:

beantworten | zitieren | melden

WriteLine ist dabei dann die Methode richtig? Sorry, ich will, dass es endlich richtig im Kopf ist.
private Nachricht | Beiträge des Benutzers
Palladin007
myCSharp.de - Experte

Avatar #avatar-4140.png


Dabei seit:
Beiträge: 1.847
Herkunft: Düsseldorf

beantworten | zitieren | melden

Zitat
WriteLine ist dabei dann die Methode richtig? Sorry, ich will, dass es endlich richtig im Kopf ist.
Genau. "WriteLine" ist die Methode und "Console" die Klasse, in der sie deklariert ist.
"Console.WriteLine("Hello World!")" ist der Methodenaufruf.



Ein kleiner Teil von robbyrcs Aussage stimmt nicht ganz:

Man kann Methoden in einer anderen Methode deklarieren, das geht ab C#7.0:
https://docs.microsoft.com/de-de/dotnet/csharp/programming-guide/classes-and-structs/local-functions

Ob das ein guter Stil ist, das muss jeder für sich entscheiden.
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Palladin007 am .
private Nachricht | Beiträge des Benutzers