断言C#+何时使用它们

San*_*pku 2 c# asp.net debugging assertion

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

有一个严格的规则,Debug.Assert应该只用于检查类的成员或用于检查公共方法的参数?

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

谢谢桑迪普

Mat*_*son 5

有一个严格的规则,Debug.Assert应该只用于检查类的成员或用于检查公共方法的参数?

千万不能使用Debug.Assert()检查参数的公共方法.应在调试发布版本中检查参数.

您应该使用显式if后跟thowing 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