Autor Beitrag
Sharpener
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 24

Win 95, Win 98, Win 2000, Win XP, Win Vista, Win 7, Win 8, Mac OS X 10.4, Mac OS X 10.7, Mac OS X 10.8
C# (VS 2012), SQL, PHP, HTML&CSS,Java
BeitragVerfasst: So 27.11.11 13:31 
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:
ausblenden 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);
            //Console.Write("Text typed: ");
            //Console.WriteLine(input);
        }
    }
}

und die klasse:
ausblenden 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:
ausblenden 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:
ausblenden 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
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 27.11.11 13:42 
Hi!

Das Problem ist, dass Du zwar ein Feld _input hast, aber die Methode auch noch den Parameter _input erwartet. Beim Aufruf übergibst Du diesen Parameter nicht, damit findet er keine passende Methode.

Grüße,
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Sharpener Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 24

Win 95, Win 98, Win 2000, Win XP, Win Vista, Win 7, Win 8, Mac OS X 10.4, Mac OS X 10.7, Mac OS X 10.8
C# (VS 2012), SQL, PHP, HTML&CSS,Java
BeitragVerfasst: So 27.11.11 15:31 
Ah jetzt funktioniert es ...
beim Lesen im Buch ist es nach deinem Post auch aufgefallen dann müsste es ja:
ausblenden C#-Quelltext
1:
string _ausgabe = ausgabe.auswertung();					

heissen.
Ich denke damit hat sich das Problem erledigt