Problem mit Klassenmethodenrückgabe von Array in Klasse
-
Hallo, ich habe ein Problem mit folgendem Code:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace Scheibenprogramm { public class MinMaxWerte { private double messtiefe; private int zaehnezahl; private double breiteAbsetzung; private double absetzungstiefe; // ***************************************************************************** private string[] bezeichnungsName = new string[0]; // Arrays für Speicherung aus den File-Datensätzen private double[] minWert = new double[0]; private double[] maxWert = new double[0]; string filename = (@"c:\ScheibenParameterMinMax.sch"); // Hier werden die Referenznamen eingelesen, werden für abspeicern benötigt public void ReadFromFileMinMax() { List<string> ListBezeichnungsName = new List<string>(); List<double> ListMinWert = new List<double>(); List<double> ListMaxWert = new List<double>(); using (StreamReader reader = File.OpenText(filename)) { string line = null; while ((line = reader.ReadLine()) != null) { if (line != "") { string[] strArr = Rückgabe(line, ";", 4); ListBezeichnungsName.Add(strArr[0]); ListMinWert.Add(Convert.ToDouble(strArr[1])); ListMaxWert.Add(Convert.ToDouble(strArr[2])); } } } bezeichnungsName = ListBezeichnungsName.ToArray(); minWert = ListMinWert.ToArray(); maxWert = ListMaxWert.ToArray(); } public string[] BezeichnungsName // Zugriff über Indexer { get { return bezeichnungsName; } } public double[] MinWert { get { return minWert; } } public double[] MaxWert { get { return maxWert; } } public string[] Rückgabe(string TextZeile, string Zeichen, int AnzahlZeichenVorkommen) // zugewiesene Zahl aus Textzeile filtern { string[] test; string strAusschnitt, strRestTextZeile; strRestTextZeile = TextZeile; // Übergabe des Textzeilenstrings zur späteren Zerlegung int ZeichenPos1, ZeichenPos2; // Positionen der Tennzeichen suchen int ZählerForSchleife = (AnzahlZeichenVorkommen - 1); if (TextZeile != "") { if (TextZeile.Contains(Zeichen)) { int iForZähler; for (iForZähler = 0; iForZähler <= ZählerForSchleife; iForZähler++) { ZeichenPos1 = strRestTextZeile.IndexOf(Zeichen); // 1. Position von Zeichen suchen ZeichenPos2 = strRestTextZeile.IndexOf(Zeichen, (ZeichenPos1 + 1)); // 2. Position von Zeichen suchen strAusschnitt = strRestTextZeile.Substring((ZeichenPos1+1), (ZeichenPos2-1)); // Teilstring ausschneiden zur Abspeicherung test[iForZähler] = strAusschnitt; // evtl. noch if-Bedingung für letzten DUrchgang sperren strRestTextZeile = strRestTextZeile.Substring(ZeichenPos2); // Stringabschnitt vor ZeichenPos2 abschneiden für nächsten Schleifendurchlauf } } } return Rückgabe; // Problem in dieser Zeile } } }
Fehlermeldung die ich erhalte:
Fehler 9 Die Methodengruppe "Rückgabe" kann nicht in den Nichtdelegattyp "string[]" konvertiert werden. Wollten Sie die Methode aufrufen? C:\Documents and Settings\jn3985\My Documents\Visual Studio 2008\Projects\C-Sharp-Ordner\Scheibenprogramm\Scheibenprogramm\MinMaxWerte.cs 115 20 ScheibenprogrammDie Methode string[]Rückgabe(....) macht Probleme. Wieso kann ich das Array nicht so zurückgeben?
Hat jemand einen Schimmer?
-
Mach doch mal die Augen auf. Guck dir doch nochmal genau den Return-Value und den Namen deiner Funktion an...
-
Fehler, man kann nicht die Funktion selber zurückgeben, ich Bachel.
Habe in der Funktion ein Array definiert, und gebe das mit der return-Anweisung zurück, und schon funzts.Tja ...
-
Ein Funktion kann sich schon selber zurückgeben dann braucht sie aber einen anderen Rückgabetyp
und Fälle wo man sowas braucht dürften ziemlich selten sein.delegate delFunk delFunk(); delFunk Funk() { return Funk; }
-
Andorxor schrieb:
Ein Funktion kann sich schon selber zurückgeben dann braucht sie aber einen anderen Rückgabetyp
und Fälle wo man sowas braucht dürften ziemlich selten sein.delegate delFunk delFunk(); delFunk Funk() { return Funk; }
Nicht unbedingt. Bei herkömmlicher Rekursion, kann er den abgegebenen Wert auch zurückgeben.
-
Bei Rekursion gib sich die Funktion nicht selbst sondern ihr Ergebnis zurück.