Code Review: Unterschied zwischen den Versionen
Aus Das Sopra Wiki
| Zeile 97: | Zeile 97: | ||
Der folgende Code macht das Richtige: Er prüft ob es ein vorhergehendes Element in der Liste der <code>Results</code> gibt. Er verwendet dafür aber Exceptions, die sehr langsam sind, den Code unnötig schwierig zu lesen machen, und für diese Aufgabe nicht angemessen sind, da wir die Größe der Liste ja kennen. | Der folgende Code macht das Richtige: Er prüft ob es ein vorhergehendes Element in der Liste der <code>Results</code> gibt. Er verwendet dafür aber Exceptions, die sehr langsam sind, den Code unnötig schwierig zu lesen machen, und für diese Aufgabe nicht angemessen sind, da wir die Größe der Liste ja kennen. | ||
< | <syntaxhighlight lang="csharp"> | ||
protected bool PreviousResultExists() | |||
{ | { | ||
try | try | ||
| Zeile 109: | Zeile 110: | ||
return false; | return false; | ||
} | } | ||
}</ | } | ||
</syntaxhighlight> | |||
Verbesserungsvorschlag: | Verbesserungsvorschlag: | ||
< | <syntaxhighlight lang="csharp"> | ||
SelectedResultId > 0;</ | protected bool PreviousResultExists() => | ||
SelectedResultId > 0; | |||
</syntaxhighlight> | |||
====Code vereinfachen==== | ====Code vereinfachen==== | ||
Es kann sein, dass der Code das Richtige auf angemessene Art und Weise macht, aber trotzdem einfacher zu lesen sein könnte. | Es kann sein, dass der Code das Richtige auf angemessene Art und Weise macht, aber trotzdem einfacher zu lesen sein könnte. | ||
Folgendes Beispiel | |||
< | <syntaxhighlight lang="csharp"> | ||
public T GetComponent<T>() | |||
{ | { | ||
foreach (var c in mComponents) | foreach (var c in mComponents) | ||
| Zeile 130: | Zeile 135: | ||
} | } | ||
return default(T); | return default(T); | ||
}</ | } | ||
</syntaxhighlight> | |||
lässt sich z.B. einfacher mit einer LINQ-Expression und einem besseren Methodennamen ausdrücken. | lässt sich z.B. einfacher mit einer LINQ-Expression und einem besseren Methodennamen ausdrücken. | ||
< | <syntaxhighlight lang="csharp"> | ||
public T GetFirstComponent<T>() | |||
{ | { | ||
return mComponents.OfType<T>().First(); | return mComponents.OfType<T>().First(); | ||
}</ | } | ||
</syntaxhighlight> | |||
===Architektur=== | ===Architektur=== | ||
