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