Hi,
ich hatte im letzten Monat ziemlich Stress und konnte nichts Programmieren. Zuletzt war ich bei Klassen und Methoden stehengeblieben.
Zurzeit programmiere ich ein kleines Betriebssystem auf C# Kernel und wollte "Entscheidungen" (die das TUI treffen muss) in eine Klasse auslagern.
Aber ich bekomme 2 Fehler.
Kurz der Code:
Kernel.cs:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| using System; using System.Collections.Generic; using System.Text; using Sys = Cosmos.System;
namespace DocsLab { public class Kernel : Sys.Kernel { protected override void BeforeRun() { Console.WriteLine("DocsLab booted! Currently: \nClasstest"); }
protected override void Run() { Console.Write("Input: "); string input = Console.ReadLine(); commandline ausgabe = new commandline() { _input = input }; string _ausgabe = ausgabe.auswertung(); Console.WriteLine(_ausgabe); } } } |
und die klasse:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace DocsLab { class commandline { public string _input; public string auswertung (string _input) { switch (_input) { case "command": string rueckgabe = "commandtest"; return rueckgabe; default: break; } } } } |
Der Compiler zeigt an:
Quelltext
1: 2:
| Fehler 1 Keine Überladung für die auswertung-Methode nimmt 0 Argumente an. I:\Ultimate\DocsLab\DocsLab\Kernel.cs 20 31 DocsLab Fehler 2 "DocsLab.commandline.auswertung(string)": Nicht alle Codepfade geben einen Wert zurück. I:\Ultimate\DocsLab\DocsLab\commandline.cs 11 23 DocsLab |
Ich verstehe das Problem der Überladung nicht. Und Fehler2 wird eleminiert durch:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| switch (_input) { case "command": string rueckgabe = "commandtest"; return rueckgabe; default: string _rueckgabe = "unbekannt"; return _rueckgabe; } |
Dann verbleibt nurnoch Fehler 1...
Ich denke der Fehler ist recht banal und einfach aber naja ich weiss nicht