Wann sollte debug.assert über Code-Verträge oder umgekehrt? Ich möchte die Vorbedingung für eine Methode überprüfen und bin verwirrt, um eine über die andere zu wählen. Ich habe Komponententests, bei denen ich Fehlerszenarien testen und Ausnahmen erwarten kann.Debug.Assert vs Code Vertragsverwendung
Ist es eine gute Praxis, Debug.Assert und Code-Vertrag auf der gleichen Methode zu verwenden. Wenn ja, in welcher Reihenfolge sollte der Code geschrieben werden?
Debug.Assert(parameter!= null);
Contract.Requires<ArgumentNullException>(parameter != null, "parameter");
oder
Contract.Requires<ArgumentNullException>(parameter != null, "parameter");
Debug.Assert(parameter!= null);
Gibt es eine Logik dahinter?
stimme ich voll und ganz zu, aber wenn ich wählen, debug.assert und Code-Vertrag an der gleichen Stelle sollte es in einer bestimmten Reihenfolge sein? – CarbineCoder
Nicht sicher, warum Sie auf diese Weise eine doppelte Überprüfung durchführen würden. Ordnung sollte nicht herrschen. Wenn ich das täte, glaube ich, dass ich den Debug.Assert zuerst als eine Entwicklungsdebugginghilfe setzen würde. – Dweeberly
Debug.Assert wird nicht in Release-Code vorhanden sein, aber Code-Verträge werden. Ich denke, es gibt Fälle, in denen debug.assert parallel zu Code-Verträgen benötigt wird - ich könnte mich irren. Daher die Frage. – CarbineCoder