温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-07-17 10:27:48 来源:网络 阅读:888 作者:Aonaufly 栏目:编程语言

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
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI