在您开发过程中,您经常使用
之类的东西throw new NotImplementedException("Finish this off later")
或
// TODO - Finish this off later
作为占位符,提醒您完成某些事情 - 但这些可能会被遗漏并错误地在发布中结束。
您可以使用类似
的内容#if RELEASE
Finish this off later
#endif
所以它不会在Release版本中编译 - 但是有更优雅的方式吗?
答案 0 :(得分:11)
我看到了一个优雅的实现here
#if DEBUG
namespace FakeItEasy
{
using System;
using System.Diagnostics.CodeAnalysis;
/// <summary>
/// An exception that can be thrown before a member has been
/// implemented, will cause the build to fail when not built in
/// debug mode.
/// </summary>
[Serializable]
[SuppressMessage("Microsoft.Design",
"CA1032:ImplementStandardExceptionConstructors",
Justification = "Never used in production.")]
public class MustBeImplementedException
: Exception
{
}
}
#endif
答案 1 :(得分:10)
我建议使用#warning
:
#warning Finish this off later
在Release
配置集Treat Warnings as Errors
到True
。
在Debug中的这种情况下,您只会将其视为警告,但在发布时它会抛出异常。
答案 2 :(得分:10)
您可以使用#error
和#warning
指令来抛出自己的构建错误和警告:
#if RELEASE
#error Not finished!
#endif
http://msdn.microsoft.com/en-us/library/c8tk0xsk(v=vs.80).aspx
答案 3 :(得分:1)
你可以将它封装在它自己的方法中,这样只需要在一个地方更改它就可以进行发布构建。
void NotImplemented()
{
#if RELEASE
Finish this off later
#endif
}