Это зависит от того, для чего вы его используете.Если вы используете его для утверждений в своих собственных методах, чтобы убедиться, что они работают должным образом, я думаю, что это хорошо - но я бы предпочел модульные тесты для проверки всего, что я могу придумать, если это вообще возможно.
Это , а не хорошая идея (IMO) использовать его для проверки входного ввода - например, параметров.В этом случае я считаю, что гораздо более логично использовать исключения обычным образом:
if (foo == null)
{
throw new ArgumentNullException("foo");
}
На мой взгляд, это поведение должно не меняться только потому, что вы запускаете код релиза.