• C#预编译指令


    近日工作涉及到于外部系统交互,对方提供接口;但是在双方系统未联调时,引用外部DLL,相关类实例化,提示异常错误(错误消息正常);后面操作无法进行,那如何写调试代码,即在调试时不运行某段代码,而在正式发布时,运行该部分程序。

    分析:

      为避免在调试过程中,避免异常错误,导致程序无法正常运行(主要是针对真实环境未提供),例如需要硬件驱动;需要一个标识,告诉程序执行某段代码。

    方案:

    1、在config文件中加入配置项,根据不同的配置值来执行程序某段代码

    2、采用预编译指令,当程序在debug时,执行那部分代码;在RELEASE时,执行某部分代码

    比较:

    第一种方案的需要用户配置文件,添加维护工作量;第二种相对灵活,但是在交付版本时,注意区分是DEBUG还是RELEASE

    关于预编译指令的官方解释在http://msdn.microsoft.com/zh-cn/library/ed8yd1ha.aspx

    使用 #define 定义符号。  当您将符号用作传递给 #if 指令的表达式时,此表达式的计算结果为 true,如下例所示: 
    
    # define  DEBUG 

    项目中具体应用

    #define RELEASE
    using System;
    
    #if DEBUG
                HiddenDebugContrl(false);
    
    #elif RELEASE
                m_service = new RFIDGateService();
                m_service.CheckedItemEpcRaised += new RFIDGateService.ItemCheckedEvent(m_service_CheckedItemEpcRaised);
                m_service.SessionEndCheckedRaised += new RFIDGateService.SessionEndCheckedEvent(m_service_SessionEndCheckedRaised);
                HiddenDebugContrl(true);
    #else
    #endif

    注:C#在Debug状态下自动定义DEBUG标志,但Release状态不会自动定义RELEASE标志,故需要在开头定义#define RELEASE。

  • 相关阅读:
    初探linux子系统集之led子系统(一)
    金融大数据分析从认知到实践(第1辑)(套装共3册)
    Blender权威指南
    零基础学Python
    中文版Photoshop CC图像处理与设计
    21天学通C++(第4版)
    Python应用开发实战
    电脑办公实战从入门到精通(超值版)
    Windows 10从新手到高手
    21天学通C语言(第7版)
  • 原文地址:https://www.cnblogs.com/tuqun/p/3889904.html
Copyright © 2020-2023  润新知