Est-il possible de créer une méthode qui effectue une assistance de débogage comme la classe System.Diagnostics.Debug
?Est-il possible de créer une méthode Debug uniquement dans .NET?
Je cherche un moyen de construire une méthode qui, lorsqu'elle est appelée par un assembly compilé avec le symbole de compilation conditionnel DEBUG défini, aboutit à une opération, et qui est une no-op lorsqu'elle est appelée par un assembly sans le symbole défini.
Si possible, j'aimerais que les appels aux méthodes de débogage permettent d'ajouter un surcoût minimal ou d'augmenter la taille de la version finale de l'assembly. Pour clarifier, les méthodes de débogage doivent être dans un assembly compilé en mode Release. Les appels aux méthodes ne doivent générer des opérations que s'ils sont appelés à partir d'un assembly avec le symbole DEBUG défini dans la portée de l'appel de méthode.
+1 de remarquer que ce conditionnelle est pas à toute épreuve (ce que cela signifie qu'il est encore CLI-conforme?) Que se passe-C++ appelle à Debug.WriteLine? Est-ce que c'est pour toutes les versions? Ça serait sympa de vous faire éditer ça dans: P –
Je ne l'ai pas vraiment essayé. La page MSDN sur ConditionalAttribute indique simplement que le compilateur C++ n'est pas conforme, sans indiquer quelles versions. – SLaks
Comme je l'ai dit dans la réponse ('et émettra toujours l'appel'), le compilateur C++ (je crois) émettra toujours des appels à' WriteLine', même dans Release. – SLaks