首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >停止带有错误的发行版编译的优雅方法

停止带有错误的发行版编译的优雅方法
EN

Stack Overflow用户
提问于 2012-02-06 23:06:56
回答 4查看 660关注 0票数 16

当你在开发的时候,你经常会用到这样的东西

代码语言:javascript
复制
throw new NotImplementedException("Finish this off later") 

代码语言:javascript
复制
// TODO - Finish this off later

作为一个占位符,提醒你完成一些事情--但这些可能会被遗漏,并错误地在发布中结束。

您可以使用类似于

代码语言:javascript
复制
#if RELEASE
   Finish this off later
#endif

所以它不会在发布版本中编译--但是有没有更优雅的方式呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-06 23:17:37

我看到了一个优雅的实现here

代码语言:javascript
复制
#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
票数 12
EN

Stack Overflow用户

发布于 2012-02-06 23:10:05

我建议使用#warning

代码语言:javascript
复制
#warning Finish this off later

Release配置中,将Treat Warnings as Errors设置为True

在这种情况下,在Debug中,您将只看到警告,但在release中,它将抛出异常。

票数 10
EN

Stack Overflow用户

发布于 2012-02-06 23:10:52

您可以使用#error#warning指令抛出自己的构建错误和警告:

代码语言:javascript
复制
#if RELEASE
#error Not finished!
#endif

http://msdn.microsoft.com/en-us/library/c8tk0xsk(v=vs.80).aspx

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9162157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档