In C # ist eine Funktion eine Möglichkeit, Code zu verpacken, der etwas tut und dann den Wert zurückgibt. Anders als in C, C ++ und in einigen anderen Sprachen existieren Funktionen nicht für sich. Sie sind Teil eines objektorientierten Ansatz zur Programmierung.
Ein Programm zum Verwalten von Tabellenkalkulationen kann beispielsweise eine sum () - Funktion als Teil eines Objekts enthalten.
In C # kann eine Funktion als Member-Funktion bezeichnet werden - sie ist Mitglied einer Klasse -, aber diese Terminologie bleibt in C ++ erhalten. Der übliche Name dafür ist eine Methode.
Die Instanzmethode
Es gibt zwei Arten von Methoden: Instanzmethode und statische Methode. Diese Einführung behandelt die Instanzmethode.
Das folgende Beispiel definiert eine einfache Klasse und ruft sie auf Prüfung. Dieses Beispiel ist ein einfaches Konsolenprogramm, daher ist dies zulässig. Normalerweise muss die erste in der C # -Datei definierte Klasse die Formularklasse sein.
Es ist möglich, eine leere Klasse wie diese zu haben
Klassentest {}, aber es ist nicht nützlich. Obwohl es leer aussieht, erbt es - wie alle C # -Klassen - von dem Objekt, das es enthält und einen Standard enthält Konstrukteur im Hauptprogramm.var t = neuer Test ();
Dieser Code funktioniert, aber er führt beim Ausführen nichts anderes aus, als eine Instanz zu erstellen t der leeren Testklasse. Der folgende Code fügt eine Funktion hinzu, eine Methode, die das Wort "Hallo" ausgibt.
using System;
Namespace funcex1
{
Klassentest
{
public void SayHello ()
{
Konsole. WriteLine ("Hallo");
}
}
Klassenprogramm
{
statische Leere Main (string [] args)
{
var t = neuer Test ();
t. Sag Hallo() ;
Konsole. Schlüssel einlesen() ;
}
}
}
Dieses Codebeispiel enthält Konsole. Schlüssel einlesen()Wenn es ausgeführt wird, wird das Konsolenfenster angezeigt und es wird auf eine Tasteneingabe wie Eingabe, Leertaste oder Eingabetaste gewartet (nicht auf die Umschalt-, Alt- oder Strg-Taste). Ohne sie würde es das Konsolenfenster öffnen, "Hallo" ausgeben und dann alles im Handumdrehen schließen.
Die Funktion Sag Hallo ist ungefähr so einfach wie eine Funktion, die Sie haben können. Es ist eine öffentliche Funktion, dh die Funktion ist von außerhalb der Klasse sichtbar.
Wenn Sie das Wort entfernen Öffentlichkeit und versuche es kompilieren Der Code schlägt mit einem Kompilierungsfehler "funcex1.test" fehl. Auf SayHello () 'kann aufgrund seiner Schutzstufe nicht zugegriffen werden. "Wenn Sie das Wort" privat "hinzufügen, in dem sich das Wort public befand, und neu kompilieren, wird der gleiche Kompilierungsfehler angezeigt. Ändern Sie es einfach wieder in "öffentlich".
Das Wort Leere in der Funktion bedeutet, dass die Funktion keine Werte zurückgibt.
Typische Merkmale der Funktionsdefinition
- Zugriffsebene: öffentlich, privat und einige andere
- Rückgabewert>: void oder ein beliebiger Typ wie int
- Methodenname: SayHello
- Beliebige Methodenparameter: vorerst keine. Diese werden in den Klammern () nach dem Methodennamen definiert
Der Code für die Definition einer anderen Funktion, MyAge (), lautet:
public int MyAge ()
{
return 53;
}
Fügen Sie das direkt nach dem hinzu Sag Hallo() Methode im ersten Beispiel und fügen Sie diese beiden Zeilen vor Konsole. Schlüssel einlesen().
var age = t. Mein Alter();
Konsole. WriteLine ("David ist {0} Jahre alt", Alter);
Wenn Sie das Programm jetzt ausführen, wird Folgendes ausgegeben:
Hallo
David ist 53 Jahre alt,
Das var age = t. Mein Alter(); Der Aufruf der Methode gab den Wert 53 zurück. Es ist nicht die nützlichste Funktion. Ein nützlicheres Beispiel ist die Tabellenkalkulationssummenfunktion mit einem Array von ints, den Startindex und die Anzahl der zu summierenden Werte.
Dies ist die Funktion:
public float Summe (int [] Werte, int Startindex, int Endindex)
{
var total = 0;
für (var index = startindex; index <= endindex; Index ++)
{
gesamt + = Werte [Index];
}
Rückgabesumme;
}
Hier sind drei Anwendungsfälle. Dies ist der Code, den Sie in Main () hinzufügen und aufrufen müssen, um die Summenfunktion zu testen.
var values = new int [10] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Konsole. WriteLine (t. Summe (Werte, 0,2)); // Sollte 6 sein
Konsole. WriteLine (t. Summe (Werte 0,9)); // sollte 55 sein
Konsole. WriteLine (t. Summe (Werte 9,9)); // sollte 10 sein, da der 9. Wert 10 ist
Das Für Schleife Addiert die Werte im Bereich Startindex zu Endindex. Für Startindex = 0 und Endindex = 2 ist dies die Summe von 1 + 2 + 3 = 6. Während für 9,9 nur die Ein-Werte [9] = 10 addiert werden.
Innerhalb der Funktion wird die lokale Variablensumme auf 0 initialisiert und dann werden die relevanten Teile der Array-Werte hinzugefügt.