C#的预处理指令的全局设计

C#的预处理指令是一个很好的功能 , 比如你的这个系统可能在Windows , IOS , ANDROID等等上面运行 , 你不会是想要告诉我开发3个甚至更多的系统分别为他们服务吧 ? 实际上, 他们的功能都是一样的 , 只是细微的实现方式不一样 , 想想看 !!!也许你会说 , 做一个全局控制的状态机 , 修改状态来实现控制平台的效果 , 没错 , 这个可以做 , 可以实现 。 但是你把这个系统放在Windows上那么IOS , ANDROID 等功能都在里面只是永远不会执行 , 这不仅导致系统大 , 而且还没必要的消耗了内存。完美的解决方案就是C#的预处理指令 , 先来一段代码 : C#的预处理指令的全局设计

站在用户的角度思考问题,与客户深入沟通,找到景泰网站设计与景泰网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都做网站、企业官网、英文网站、手机端网站、网站推广、域名与空间、雅安服务器托管、企业邮箱。业务覆盖景泰地区。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Mymc
{
    class Program
    {
        //a ss = new a();
        static void Main(string[] args)
        {
#if (A)
            Console.WriteLine("A");
#elif (B)
    Console.WriteLine("B");
#else
            Console.WriteLine("C");
#endif



#if (WEB_PLAYER)
             Console.WriteLine("这是网页游戏");
#elif (IOS_PLAYER)
             Console.WriteLine("Apple平台");
#elif (ANDROID_PLAYER)
            Console.WriteLine("安卓平台");
#else
            Console.WriteLine("其他平台");
#endif

#if DEBUG
             Console.WriteLine("处于Debug模式");
#endif
            Console.ReadLine();

        }



    }
}

传统的方式是这样的 : 看下面

C#的预处理指令的全局设计

用#define但是这个有个缺陷 : 你做的每一个类如果要有区分的话都要加 : #define WEB_PLAYER , 累死你 。我们可以不加这 , 用VS编译的时候加 。 方案如下 :先上图

C#的预处理指令的全局设计

在项目上右击->属性 , 在“生成”中可以配置 这些全局的#define , 在C++应该叫宏吧。相当于宏

注意 : Q 和 WEB_PLAYER 中间用; 隔开

看下结果 :

C#的预处理指令的全局设计

测过都OK了 C#的预处理指令的全局设计

附件:http://down.51cto.com/data/2365375

新闻名称:C#的预处理指令的全局设计
URL地址:http://azwzsj.com/article/jooeic.html