C#中的#define DEBUG疑问

#define DEBUG

条件编译,很适合进行一些发布前的调试工作。在工程的属性里进行相关的定义。DEBUG默认是一个可选项,当然,除了DEBUG外,还可以自定义其他的一些符号(定义太多好象也用不到)。

生成工程的时候,如果选择DEBUG模式,就会定义DEBUG符号,在程序代码中,执行DEBUG符号有效范围内的代码。非常方便进行调试。

从开始学会就一直在用,可是这段时间,在学习IHttpHandler接口的时候,却遇到了#define DEBUG的问题,百思不得其解,问过一些人,也不知道,先记下来:

创建自定义 HelloWorldHandler HTTP 处理程序类

  1. 如果要使用的网站还没有 App_Code 文件夹,请在该站点的根目录下创建这样一个文件夹。

  2. 在 App_Code 目录中,创建一个名为 HelloWorldHandler 的类,并将下面的代码添加到类文件中。

using System.Web;
public class HelloWorldHandler : IHttpHandler
{
    public HelloWorldHandler()
    {
    }
    public void ProcessRequest(HttpContext context)
    {
        HttpRequest Request = context.Request;
        HttpResponse Response = context.Response;
        // This handler is called whenever a file ending
        // in .sample is requested. A file with that extension
        // does not need to exist.
        Response.Write("<html>");
        Response.Write("<body>");
        Response.Write("<h1>Hello from a synchronous custom HTTP handler.</h1>");
        Response.Write("</body>");
        Response.Write("</html>");
    }
    public bool IsReusable
    {
        // To enable pooling, return true here.
        // This keeps the handler in memory.
        get { return false; }
    }
}

然后配置好IIS,一切顺利。在我后来的修改过程中,如果上面的主体结构没改,代码基本上都改了。我还加入了#define DEBUG,麻烦了,不管工程怎么设置,

DEBUG都处于没有定义状态,可是同一工程里的其他.cs文件如果有#define DEBUG,DEBUG又是处于定义壮态。真是奇怪!

 

posted @ 2009-03-18 14:37  ishare  阅读(2671)  评论(0编辑  收藏  举报