我看过几篇关于在 C# 中使用 Debug.Assert 的帖子。但我仍然有一个疑问,可能是重复的,但我需要问。
是否有严格的规定 Debug.Assert 只能用于检查类的成员或用于检查公共方法的参数?
或者我可以在我想要的任何地方使用 Debug.Assert 并检查任何条件吗?
谢谢桑迪普
是否有严格的规定 Debug.Assert 只能用于检查类的成员或用于检查公共方法的参数?
不要用于检查公共方法的参数。Debug.Assert()
应在调试和发布版本中检查参数。
您应该使用显式if
后跟 thwing或ArgumentNullException
用于无效参数。ArgumentOutOfRangeException
ArgumentException
或者,使用Code Contracts
来表达参数前提条件Contract.Requires()
。
如需进一步参考,请参阅此线程:何时应使用 Debug.Assert()?
除此之外,您可以Debug.Assert()
在任何地方使用,但请注意,可能需要对 Asp.Net 进行更多设置:在 ASP.NET 中使用 Debug.Assert 是否值得?
另见此处: http: //gregbeech.com/blog/how-to-integrate-debug-assert-with-your-asp-net-web-application
您可以在任何地方使用它。请注意,这是一个调试检查。因此,它仅在您测试时在开发时进行检查。如果您需要您的程序根据条件实际改变行为,您仍然需要额外if
的 s。
阅读 Microsoft 的编码指南,并尝试使用静态代码分析或 Visual Studio(以前称为 FxCop)和 StyleCop 等工具来自动检查代码质量和常见错误。