Can*_*var 8 debugging assertions
将断言放入代码中有什么意义?自信编程有什么好处?
private void WriteMessage(string message)
{
Debug.Assert(message != null, "message is null");
File.WriteAllText(FILE_PATH, message);
}
Run Code Online (Sandbox Code Playgroud)
例如,我们可以检查消息变量并在此处抛出异常.为什么我在这里使用assert?或者这是一个错误的例子,看到断言的好处?
有人写的地方:
/*
* This can never happen
*/
Run Code Online (Sandbox Code Playgroud)
写起来更实用:
assert(i != -1);
Run Code Online (Sandbox Code Playgroud)
我喜欢使用断言,因为它们很容易通过简单的编译时间常量关闭,或者做一些其他事情,比如准备错误报告.在释放某些东西时,我通常不会断言断言(至少不是以通常的方式).
使用它们使我免于在其他人的计算机上犯下非常愚蠢的错误......那些喜欢测试我的alpha代码的勇敢的灵魂.使用它们加上像valgrind这样的工具有助于保证在提交之前我抓到了一些可怕的东西.