Entwickler-Ecke
C# - Die Sprache - Fehler bei der Erstellung einer Methode in einer Klasse
master147 - Di 28.05.13 20:51
Titel: Fehler bei der Erstellung einer Methode in einer Klasse
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.
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
Th69: Topic aus WinForms verschoben am Mi 29.05.2013 um 09:25
DarkStaRX - Di 28.05.13 21:43
Der Konstruktor gibt keine Werte zurück
Wenn dann erstelle eine Methode z.B.
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 - 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
DarkStaRX 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 - 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:
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:
C#-Quelltext
1: 2: 3:
| Noten noten = new Noten("Vader", "gut"); string notenVergabe = noten.Notenvergabe; Console.WriteLine(notenVergabe); |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!