In C # ist eine Funktion eine Art, Code zu verpacken, der etwas bewirkt und dann den Wert zurückgibt. Anders als in C, C ++ und einigen anderen Sprachen existieren Funktionen nicht für sich. Sie sind Teil eines objektorientierten Programmieransatzes.
Ein Programm zum Verwalten von Arbeitsblättern 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 -, diese Terminologie bleibt jedoch in C ++ erhalten. Der übliche Name dafür ist eine Methode.
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 enthält einen Standardkonstruktor im Hauptprogramm.
var t = neuer Test ();
Dieser Code funktioniert, aber beim Ausführen wird nur eine Instanz erstellt t der leeren Testklasse. Der folgende Code fügt eine Funktion hinzu, eine Methode, die das Wort "Hallo" ausgibt.
using System;
Namespace funcex1
Klassentest
öffentliche Leere SayHello ()
Console.WriteLine ("Hello");
Klasse Programm
static void Main (string [] args)
var t = neuer Test ();
t.SayHello ();
Console.ReadKey ();
Dieses Codebeispiel enthält Console.ReadKey (), Wenn es ausgeführt wird, wird das Konsolenfenster angezeigt und auf eine Tasteneingabe wie Eingabe, Leertaste oder Return gewartet (nicht die Umschalt-, Alt- oder Strg-Taste). Ohne 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 möglich. Es ist eine öffentliche Funktion, was bedeutet, dass die Funktion von außerhalb der Klasse sichtbar ist.
Wenn Sie das Wort entfernen Öffentlichkeit Wenn Sie versuchen, den Code zu kompilieren, schlägt die Kompilierung mit dem Fehler "funcex1.test.SayHello ()" fehl, auf den aufgrund der Schutzstufe nicht zugegriffen werden kann. Wenn Sie an der Stelle, an der sich das Wort public befand, das Wort "private" hinzufügen und erneut kompilieren, wird derselbe Kompilierungsfehler angezeigt. Ändern Sie es einfach wieder in "öffentlich".
Das Wort Leere in der Funktion bedeutet, dass die Funktion keine Werte zurückgibt.
Der Code für die Definition einer anderen Funktion, MyAge (), lautet:
public int MyAge ()
return 53;
Füge das gleich nach dem hinzu Sag Hallo() Methode im ersten Beispiel und fügen Sie diese beiden Zeilen vor Console.ReadKey ().
var age = t.MyAge ();
Console.WriteLine ("David ist 0 Jahre alt", Alter);
Das Ausführen des Programms gibt nun Folgendes aus:
Hallo
David ist 53 Jahre alt,
Das var age = t.MyAge (); Der Aufruf der Methode gab den Wert 53 zurück. Dies ist nicht die nützlichste Funktion. Ein nützlicheres Beispiel ist die Tabellenkalkulationssummenfunktion mit einem Ints-Array, dem Startindex und der 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];
Gesamtrendite;
Hier sind drei Anwendungsfälle. Dies ist der Code, der in Main () hinzugefügt und aufgerufen werden muss, um die Summenfunktion zu testen.
var values = new int [10] 1, 2, 3, 4, 5, 6, 7, 8, 9, 10;
Console.WriteLine (t.Sum (values, 0,2)); // Sollte 6 sein
Console.WriteLine (t.Sum (values, 0,9)); // sollte 55 sein
Console.WriteLine (t.Sum (values, 9,9)); // sollte 10 sein, da der 9. Wert 10 ist
Die For-Schleife addiert die Werte im Bereich von Startindex zu Endindex. Für Startindex = 0 und Endindex = 2 ist dies die Summe von 1 + 2 + 3 = 6. Für 9,9 addiert sie nur die einen Werte [ 9] = 10.
Innerhalb der Funktion wird die Summe der lokalen Variablen auf 0 initialisiert und anschließend werden die relevanten Teile der Array-Werte hinzugefügt.