#if DEBUG
[assembly: System.Web.UI.WebResource("YYControls.SmartGridView.Resources.ScriptLibraryDebug.js", "text/javascript")]
#else
[assembly: System.Web.UI.WebResource("YYControls.SmartGridView.Resources.ScriptLibrary.js", "text/javascript")]
#endif谁能给我说下这段是干什么,听说是预处理。具体怎么执行。谢谢啊

解决方案 »

  1.   

    这个是编译时决策系统,编译时候根据 DEBUG 编译预处理指令的定义与否,
    选择不同的代码来编译, 或者禁用启动某些代码.右键项目属性里头可以设置 DEBUG 预编译指令.在 vs 编辑器里头, 当前失活的代码段是灰色的.这样选择后, 灰色的代码不会出现在编译后的制品中.这个不同于 语言中的 if else
      

  2.   

    预编译命令:
    如果是调试状态下运行,则执行[assembly: System.Web.UI.WebResource("YYControls.SmartGridView.Resources.ScriptLibraryDebug.js", "text/javascript")]
    否则执行[assembly: System.Web.UI.WebResource("YYControls.SmartGridView.Resources.ScriptLibrary.js", "text/javascript")]
      

  3.   

    如果要在代码文件内设置预处理指令, 需要放在最开始可以尝试在文件头部试验
    #define DEBUG#if DEBUG
    #undef DEBUG
    #endif#if DEBUG
    ok, 如果定义 DEBUG 这里编译会报错
    #endif
      

  4.   

    调试的时候执行这个
    [assembly: System.Web.UI.WebResource("YYControls.SmartGridView.Resources.ScriptLibraryDebug.js", "text/javascript")]发布的时候执行这个
    [assembly: System.Web.UI.WebResource("YYControls.SmartGridView.Resources.ScriptLibrary.js", "text/javascript")]
      

  5.   

    debug时才会运行的语句,通常在编译时给出警告等