c# - .NET assert assertions are enabled -
how 1 assert assertions enabled in c#?
here's link related answer java, not work in c#.
the purpose of prevent use of release-type assemblies because efficiency of no concern might running assertions working, there in places preference debug-type assemblies.
use of debug.assert(false) not satisfactory because creates dialog , requires user interaction. know assertions work without "noise". java solution noiseless.
update: there's simpler solution. other 1 still below curious.
public static bool areassertionsenabled = #if debug true #else false #endif ; looks nasty quite simple.
let's first @ causes debug.assert disappear in non-debug builds:
[conditional("debug"), __dynamicallyinvokable] public static void assert(bool condition) { traceinternal.assert(condition); } it's [conditional("debug")]. inspires following solution:
public static bool areassertionsenabled = false; static myclassname() { maybesetenabled(); /* call deleted in release builds */ } [conditional("debug")] static void maybesetenabled() { areassertionsenabled = true; } you can refactor areassertionsenabled can readonly. can't think of way right now.
you can check boolean value areassertionsenabled , perform logic based on it.
Comments
Post a Comment