Autor Beitrag
master147
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32



BeitragVerfasst: Di 28.05.13 20:51 
Hallo,

ich habe mir eine Klasse Noten.cs erstellt. Nun möchte ich über die Methode Notenvergabe gerne die Noten verteilen, allerdings kommt immer der Fehler, dass die Methode keine Rückgabetyp besitzt allerdings weiß ich im Moment nicht wo der Fehler steckt.
Ich hoffe ihr könnt mir dabei helfen.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
public class Noten
    {
     
        public string Azubi { get; private set; }
        public string Note { get; private set; }

        public Notenvergabe(string azubi, string note)
        {
            this.Azubi = azubi;
            this.Note = note;
       
            return Azubi + " " + Note;
        }


    }


Vielen Dank für eure Hilfe


Moderiert von user profile iconTh69: Topic aus WinForms verschoben am Mi 29.05.2013 um 09:25
DarkStaRX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 28
Erhaltene Danke: 3



BeitragVerfasst: Di 28.05.13 21:43 
Der Konstruktor gibt keine Werte zurück

Wenn dann erstelle eine Methode z.B.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
public string Vergabe(string azubi, string note)
        {
            this.Azubi = azubi;
            this.Note = note;
       
            return Azubi + " " + Note;
        }



Diese rufst du dann z.B: so auf

Noten Noten = new Noten();
string _variable = Noten.Vergabe("DEIN STRING","DEIN STRING");
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 28.05.13 22:02 
Bei deiner Notenvergabe Methode fehlt ja auch der Rückgabetyp. Wenn das der Konstruktor sein soll und nicht irgendeine Methode so wie user profile iconDarkStaRX vermutet muss der haargenau so heißen wie die Klasse in der sie steckt. Das ist hier nicht der Fall. Ansonsten verpasse der Methode einen Rückgabetyp so wie du auch deinen beiden Properties einen string Rückgabetypen gegeben hast. Also nach der Sichtbarkeit aber vor dem Methodennamen.
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Di 28.05.13 23:43 
Wäre es allerdings nicht sinnvoller, Azubi und Note schon im Konstruktor fest zulegen?

Dann kannst du die Methode Notenvergabe ohne Parameter auf rufen, da Azubi und Parameter in dem Objekt zu finden sind und daher nicht mehr extra mit gegeben werden müssen.

Vielleicht wäre es auch einfacher, die Methode als Eigenschaft zu schreiben und dann nur den get-Accessor zu definieren, die dann die gleiche Rückgabe besitzt.



Beides zusammen dann also so:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
public class Noten
{
    public string Azubi { get; private set; }
    public string Note { get; private set; }
    public string Notenvergabe
    {
        get { return return this.Azubi + " " + this.Note; }
    }

    public Noten(string azubi, string note)
    {
        this.Azubi = azubi;
        this.Note = note;
    }
}


Dann instanziirst du mit dem Konstruktor einmal das Objekt und kannst dann mit der neuen Eigenschaft die Notenvergabe abrufen:

ausblenden C#-Quelltext
1:
2:
3:
Noten noten = new Noten("Vader""gut");
string notenVergabe = noten.Notenvergabe;
Console.WriteLine(notenVergabe); // Ausgabe: Vader gut