Debug类提供了几种用于调试代码的方法。其Assert方法采用布尔值,如果值为false则抛出异常。第二个参数给出异常应显示的错误消息。如果在调试器中运行时断言失败,您可以选择打开调试器到抛出异常的 Debug.Assert语句。
通常,您使用Debug.Assert来验证代码中的条件(例如输入和输出值)。例如,以下Average方法使用Debug.Assert来验证方法的输入参数。
// Return the average of the numbers.
private float Average(float[] values)
{Debug.Assert(values != null,"Values array cannot be null");Debug.Assert(values.Length > 0,"Values array cannot be empty");Debug.Assert(values.Length < 100,"Values array should not contain more than 100 items");// If there are no values, return NaN.if (values == null || values.Length < 1) return float.NaN;// Calculate the average.return values.Average();
}
在开始计算之前,该方法会验证values参数是否不为null、是否至少包含一个项目并且不超过 99 个项目。前两个条件是计算有意义的平均值所必需的。
最后一个条件(不超过 99 个项目)是“健全性检查”,用于查看方法调用是否合理。在测试应用程序时,如果您发现程序调用的方法包含超过 99 个项目,则可以查看它是否合理。如果合理,则可以将上限增加到 199 或任何合适的值。这可以让您捕获调用代码可能包含错误的意外情况。
Debug.Assert仅在运行调试版本时有效。运行发布版本时,Debug.Assert语句将被忽略。这可让您在测试期间清除错误,然后从最终版本中删除这些语句。
为了实现这一点,您需要确保即使Debug.Assert语句失败,代码仍能正常工作。在此示例中,即使值数组为空或不包含任何值, Average方法也会返回一个值。
要进行调试或发布构建,请打开“构建”菜单并选择“配置管理器”。在“活动解决方案配置”下拉菜单中,选择“调试”或“发布”,然后重新构建解决方案。
最后,Debug类位于System.Diagnostics命名空间中,默认情况下不包含在内。为了更轻松地使用它,您可能需要在代码中包含以下行。
using System.Diagnostics;