-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 に答える