Weil das der Rückgabetyp der Funktion ist.
aquasonic hat gesagt.:
Eine Funktion jedoch hat einen Rückgabewert. In einer Funktion werden z.B. diverse Sachen berechnet und dann zurückgegeben. Wenn du zum Beispiel wissen willst, wieviele Äpfel du heute schon gegessen hast, rufst du die entsprechende Funktion auf, welcher Dir den Wert zurückgibt.
[edit]
Funktion sollte man nicht immer nur verwenden um Werte von irgend wo her zu beziehen.
[/edit]
Bevor ich weiter ausführe ein paar Basics für
.NET:
Es gibt
Wert-Typen ( Strukturen und alle primitiven Datentypen ), welche ansich ja auch nur Strukturen sind.
Und gibt es noch die
Referenz-Typen ( Klassen ). Wenn Du Referenztypen zuweist,
hast immer eine Referenzkopie auf das selbe Objekt. Bei Werttypen eine Kopie,
was sich dann auch bei den Methodenaufrufen wieder spiegelt.
D.h. dass die Parameter einer Methode die Werttypen sind kopiert werden,
aber Referenztypen hingegen direkt verändern kannst. Damit meine ich aber nur deren den Inhalt.
Wenn Du Referenztypen neu instanzierst geht die Referenz verloren und Du hast 2 unterschiedliche Objekte.
Du kannst aber ich das Verhalten der Werttypen mittels
Ref und
Out Parameter
dahingehend beeinflussen, dass sie sich bei Methodenaufrufen wie Referenztypen verhalten.
Daher ist es nicht immer so das man Informationen nur durch einen Rückgabewert bekommen kann.
Die Informationen können sich aber auch innerhalb eines Objekts/Klasse befinden,
welches sich um eine Bestimmte Aufagbe kümmert. Daher ist es nicht immer notwendig,
sich einen Wert durch eine Methode/Funktion zu holen, was zudem auch immer einen Overhead bedeutet.
Stichwörter (Sry, Links sind leider für c# *g*):
aquasonic hat gesagt.:
Es kommt also ganz darauf an was du gerade machst. In praktisch allen Projekten und Programmen verwendest du jedoch immer Prozeduren UND Funktionen.
Das ist zwar richtig aber man sollte das nicht so weit runter brechen.
In der Prozeduralen Welt mag das vielleicht so sein aber so formuliert man es nicht nicht
nach den Idiomen der heutigen Anwendungsentwicklung.
Was ich sagen will das man nicht nur in Methoden und Funktionen denke solllte,
Man muss jedes Problem dahingehend abstrahieren können das man die Aufgaben
in Teilaufgaben zerlegt (Methoden/Funktionen) und in einem Objekt/Klasse zusammengefasst.
Mehrere Klassen werden wiederum in Aufagenbereiche (Namespaces) zusammengefasst.
Das ganze nennt sich OOP (Object-Oriented Programming / Objekt Orientierte Programmierung).
Die OOP ist zZ das aktuelle Paradigma der Anwendungsentwicklung und ist aus der Notwendigkeit herraus entstanden,
die IT Branche aus der damaligen Softwarekriese herraus zu führen.
Würde man sie die heutzutage auch gekonnt einsetzen, hätte man nicht solch blamable Fälle
wie eine unwartbare Arbeitslosengeld 2 Software die Millionen verschlang (Initiator Peter Harz - Vorstand Harzkommision).
Lass Dir das eine Lehre sein Vertigo21.
Du solltest dich bevor Du dich überhaupt an das umsetzen irgend welcher Programme
erst mal mit den Grundlagen deiner Programmiersprache vertraut machen.
Lern wirklich
alle Schlüsselworter und mach dich mit den Namespaces des Frameworks vertraut.
Dafür ist die MSDN da und probier alles akriebisch aus. Alles weitere kann man dann hier besprechen.
Von einem Tut würd ich übrigens erst mal abraten.