Anfänger: Rückgabe einer Klasse
-
Hallo,
ich habe mir eine Klasse geschrieben, die eine Datei auslesen und den Inhalt verwalten soll. Die Klasse sieht wie folgt aus:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace Zeitmanagement { class DataFile { private string DataFilePath = ""; private int nTasks = 0; public int TasksCount() { return this.nTasks; } public DataFile(string fDataPath) { if (File.Exists(fDataPath)) { DataFilePath = fDataPath; StreamReader myFile = new StreamReader(DataFilePath, System.Text.Encoding.Default); while (!myFile.EndOfStream) { this.nTasks++; } } } } }
Die Funktion "TasksCount" soll also die Anzahl der Zeilen, welche die gelesen Datei beinhaltet zurückgeben.
Nun möchte ich diesen Wert checken und schreibe folgende Funktion in meine Main Funktion:
/*Connecting Data File*/ if (File.Exists(DataPathPublic)) { DataFile DataPublic = new DataFile(DataPathPublic); DataFilePublicConnected = true; int nTP = (int)DataPublic.TasksCount; //Fehler Console.WriteLine("Number of public tasks: " + nTP); }
In der vorletzten Zeile beschwert sich mein Compiler. Folgender Fehler:
"Die Methodengruppe 'TaskCount' kann nicht in den Nichtdelegattyp 'int' konvertiert werde."Kann mir jemand bitte helfen?
Grüße,
CJens
-
Hier ein Beispiel aus einem Lehrbuch:
namespace KlasseObjekt { class Fahrzeug { private int geschwindigkeit; public string ausgabe() { return "Geschwindigkeit: " + geschwindigkeit; } public void beschleunigen(int wert) { this.geschwindigkeit += wert; } } }
Hier kann man ein int direkt in einen String unwandeln.
Ich habe meine Methode umgeschrieben:public string TasksCount() { return nTasks.ToString(); }
...nichtmal das funktioniert!
-
Dir fehlen die Klammern, da du eine Methode aufrufen willst:
int nTP = (int)DataPublic.TasksCount(); //Beachte die ()
-
Manchmal sieht man den Wald vor lauter Bäumen nicht.
Vielen Dank.