Ich habe die folgende Situation in den Händen. In dem Projekt, an dem ich arbeite, haben wir diese abstrakte Klasse A, die zwei Nachkommen hat, A_concrete1 und A_concrete2. Diese beiden waren schon einige Zeit da.Werkzeug zur Untersuchung möglicher Gießprobleme in C#
Die Zeit ist gekommen, um den dritten Nachkommen hinzuzufügen, A_concrete3. Das Problem ist, viel Zeit in den bestehenden Code-Basis finden Sie so etwas wie das:
A instance;
// ...
// assignment of instance
// ...
if (!(A is A_concrete1))
A_concrete2 = (A_concrete2)A;
So, jetzt, wenn A mehr als zwei Nachkommen hat, wird dieser Code offensichtlich gebrochen und wird zur Laufzeit fehlschlagen.
Meine Frage ist: Wie finde ich alle diese Situationen automatisch, damit ich sie beheben konnte? Was ist der beste Weg/Werkzeug um es zu tun? Ich habe versucht, Resharper zu verwenden, aber es liefert nichts für die Casting-Analyse. Ich würde mich freuen, einige Vorschläge und Hinweise zu diesem Thema zu hören.
Vielen Dank im Voraus
Nun, Resharper zeigt mir alle Verwendungen von A_concrete 1 und 2, also keine Notwendigkeit für die Klartext-Suche. Dennoch würde ich gerne ein Werkzeug sehen, das auf diese möglicherweise schlechten Castings hinweist. – Dyppl
Und sicher, ich weiß, dass das Casting für die konkrete Klasse die meiste Zeit schlecht ist, also plane ich, etwas auszuarbeiten, aber dafür muss ich wissen, welche Arten von Operationen Menschen mit diesen Objekten machen und wo sie diese ausführen. – Dyppl