2

我看过几篇关于在 C# 中使用 Debug.Assert 的帖子。但我仍然有一个疑问,可能是重复的,但我需要问。

是否有严格的规定 Debug.Assert 只能用于检查类的成员或用于检查公共方法的参数?

或者我可以在我想要的任何地方使用 Debug.Assert 并检查任何条件吗?

谢谢桑迪普

4

2 回答 2

5

是否有严格的规定 Debug.Assert 只能用于检查类的成员或用于检查公共方法的参数?

不要用于检查公共方法的参数Debug.Assert()应在调试发布版本中检查参数。

您应该使用显式if后跟 thwing或ArgumentNullException用于无效参数。ArgumentOutOfRangeExceptionArgumentException

或者,使用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

于 2013-05-23T06:16:24.077 回答
4

您可以在任何地方使用它。请注意,这是一个调试检查。因此,它在您测试时在开发时进行检查。如果您需要您的程序根据条件实际改变行为,您仍然需要额外if的 s。

阅读 Microsoft 的编码指南,并尝试使用静态代码分析或 Visual Studio(以前称为 FxCop)和 StyleCop 等工具来自动检查代码质量和常见错误。

于 2013-05-23T05:42:29.447 回答