Es ist also eine vorübergehende Lösung? Verwenden Sie dann den vom Prüfer vorgeschlagenen Namen, markieren Sie die Methode jedoch als veraltet, damit bei jeder Codekompilierung eine Warnung ausgegeben wird.
Wenn dies nicht der Fall ist, können Sie immer feststellen, dass dies 216147
im Code keinen Sinn ergibt, da der Code nicht mit dem Fehlerverfolgungssystem verknüpft ist (es ist vielmehr das Fehlerverfolgungssystem, das mit der Quellcodeverwaltung verknüpft ist). Der Quellcode ist kein guter Ort für Verweise auf Fehlertickets und Versionen, und wenn Sie diese Verweise wirklich dort platzieren müssen, tun Sie dies in den Kommentaren.
Beachten Sie, dass selbst in Kommentaren die Fehlernummer allein nicht sehr wertvoll ist. Stellen Sie sich den folgenden Kommentar vor:
public IEnumerable<Report> FindReportsByDateOnly(DateTime date)
{
// The following method replaces FindReportByDate, because of the bug 8247 in the
// reporting system.
var dateOnly = new DateTime(date.Year, date.Month, date.Day);
return this.FindReportByDate(dateOnly);
}
private IEnumerable<Report> FindReportsByDate(DateTime date)
{
Contract.Requires(date.Hour == 0);
Contract.Requires(date.Minute == 0);
Contract.Requires(date.Second == 0);
// TODO: Do the actual work.
}
Stellen Sie sich vor, der Code wurde vor zehn Jahren geschrieben, Sie sind gerade dem Projekt beigetreten, und als Sie gefragt haben, wo Sie Informationen über den Fehler 8247 finden könnten, haben Ihre Kollegen festgestellt, dass auf der Website der eine Liste von Fehlern vorhanden ist Reporting-System-Software, aber die Website wurde vor fünf Jahren überarbeitet, und die neue Liste der Fehler hat unterschiedliche Nummern.
Fazit: Sie haben keine Ahnung, worum es bei diesem Bug geht.
Derselbe Code könnte auf eine etwas andere Art und Weise geschrieben worden sein:
public IEnumerable<Report> FindReportsByDateOnly(DateTime date)
{
// The reporting system we actually use is buggy when it comes to searching for a report
// when the DateTime contains not only a date, but also a time.
// For example, if looking for reports from `new DateTime(2011, 6, 9)` (June 9th, 2011)
// gives three reports, searching for reports from `new DateTime(2011, 6, 9, 8, 32, 0)`
// (June 9th, 2011, 8:32 AM) would always return an empty set (instead of isolating the
// date part, or at least be kind and throw an exception).
// See also: http://example.com/support/reporting-software/bug/8247
var dateOnly = new DateTime(date.Year, date.Month, date.Day);
return this.FindReportsByDate(dateOnly);
}
private IEnumerable<Report> FindReportsByDate(DateTime date)
{
Contract.Requires(date.Hour == 0);
Contract.Requires(date.Minute == 0);
Contract.Requires(date.Second == 0);
// TODO: Do the actual work.
}
Jetzt haben Sie einen klaren Überblick über das Problem. Auch wenn der Hypertext-Link am Ende des Kommentars vor fünf Jahren tot zu sein scheint, spielt es keine Rolle, da Sie immer noch verstehen können, warum FindReportsByDate
er durch ersetzt wurde FindReportsByDateOnly
.