-1

为什么下面的代码无法编译(片段)?

  public enum ApplicationType : int
  {
   CONSOLE = 1,
   WINDOWS_FORMS = 2,
   ASP_NET = 3,
   WINDOWS_SERVICE = 4,
   MUTE = 5
  }

        //#if( false)
        //#if (DEBUG && !VC_V7)
 #if( m_iApplicationType != ApplicationType.ASP_NET  )
        public class HttpContext
  {
   public class Current
   {
    public class Response
    {
     public static void Write(ref string str)
     {
      Console.WriteLine(str);
     }
    }
   }
  }
#endif
4

2 回答 2

5

你遇到了什么错误?

无论如何,( m_iApplicationType == ApplicationType.ASP_NET )都不是编译时间常数。

于 2010-08-25T15:29:38.023 回答
4

您对#if成员变量的使用无效。它仅对您使用#define指令创建的符号进行操作,如下所示:

#define ASP_NET

#if(ASP_NET)
// put your conditional compilation code here
#endif

#if(CONSOLE)
// your console-related code goes here
#endif

在这种情况下,只有#if(ASP_NET)块内的代码会被编译,因为CONSOLE没有定义。

于 2010-08-25T15:38:33.730 回答