Hallo Leute,
ich wollte Euch mal fragen ob es für Klassen die speziell als Rückgabetyp eingesetzt werden, irgendwelche Vorgaben für die Namensgebung gibt.
Wie würdet Ihr z.B. die Klasse "RetValue" bennen?
public static class DatabaseConnection
{
public class RetValue
{
public bool IsOK { get; set; }
public string Error { get; set; }
}
public static RetValue Init()
{
// ....
return new RetValue(){IsOK = true};
}
}
Vielen Dank!
Marc
Macht so keinen Sinn.
Die Klassen sollten im besten Fall ihrem Zwesck/Modell nach benannt werden.
Deine Klasse für den Rückgabe Wert würde ich dann z.B. ConnectionStatus oder einfach nur Status, falls es eine generische und wiederverwendbare Klasse werden soll, nennen.
Somit zeigt der Klassen Name auch direkt welchen Zweck oder welches Modell die Klasse repräsentiert.
Für die Benennung gibt es in C# auch Vorgaben, diese beziehen sich primär auf die Schreibweise und nicht die genaue Bezeichnung.
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
Warum verwendest du keine Exceptions für den konkreten Anwendungsfall?
@witte
Die Klasse gibt es nicht wirklich. Sollte nur als Beispiel für die Namensgebung dienen.
Marc
Es ist totaler Quatsch Beispiele so zu verfälschen, dass die potentieller Helfer die Situation gar nicht mehr nachvollziehen können.
T-Virus hat absolut Recht, dass die Namen sich anhand der Grundprinzipien von OOP orientiert.
Witte hat absolut Recht, dass Exceptions prinzipiell nicht über Rückgaben gelöst werden.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
und ABT hat Recht mit "Absoluter Quatsch".
Danke auch für Deinen Beitrag 😃
Angenommen, es gibt ein Beispiel, das nicht zum Fehlerbehandlung dient:
In so einem Fall würde ich mir an eurer Stelle Gedanken über die Methode machen, ob die nicht zu viel tut 😉
Mehrere Rückgabewerte einer Methode sind fast immer ein Hinweis darauf, dass sie mehr als eine Aufgabe erledigt und dann liegt es an euch, zu entscheiden, ob Ihr diese Aufgaben trennen könnt und wollt.
Sehr beliebte Beispiele, wo zwei Rückgabewerte völlig in Ordnung sind, wären die Try-Methoden (Mit out-Parameter: int.TryParse, DateTime.TryParse, etc.)
In ähnlichen Situationen könnte man auch auf die neuen ValueTuples seit C#7 zurückgreifen.
Mit den ValueTuples hat man nicht das Problem, dass man der Klasse einen Namen geben muss, denn man erkennt es an den der Typ-Definition. Das kann aber auch schnell zum Nachteil werden, wenn so die Typ-Definition zu groß wird und/oder man sie an zu vielen Stellen braucht.
NuGet Packages im Code auslesen
lock Alternative für async/await
Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.