溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

C#的預(yù)處理指令的全局設(shè)計(jì)

發(fā)布時(shí)間:2020-07-17 10:27:48 來(lái)源:網(wǎng)絡(luò) 閱讀:888 作者:Aonaufly 欄目:編程語(yǔ)言

C#的預(yù)處理指令是一個(gè)很好的功能 , 比如你的這個(gè)系統(tǒng)可能在Windows , IOS , ANDROID等等上面運(yùn)行 , 你不會(huì)是想要告訴我開(kāi)發(fā)3個(gè)甚至更多的系統(tǒng)分別為他們服務(wù)吧 ? 實(shí)際上, 他們的功能都是一樣的 , 只是細(xì)微的實(shí)現(xiàn)方式不一樣 , 想想看 ?。。∫苍S你會(huì)說(shuō) , 做一個(gè)全局控制的狀態(tài)機(jī) , 修改狀態(tài)來(lái)實(shí)現(xiàn)控制平臺(tái)的效果 , 沒(méi)錯(cuò) , 這個(gè)可以做 , 可以實(shí)現(xiàn) 。 但是你把這個(gè)系統(tǒng)放在Windows上那么IOS , ANDROID 等功能都在里面只是永遠(yuǎn)不會(huì)執(zhí)行 , 這不僅導(dǎo)致系統(tǒng)大 , 而且還沒(méi)必要的消耗了內(nèi)存。完美的解決方案就是C#的預(yù)處理指令 , 先來(lái)一段代碼 : C#的預(yù)處理指令的全局設(shè)計(jì)


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("這是網(wǎng)頁(yè)游戲");
#elif (IOS_PLAYER)
             Console.WriteLine("Apple平臺(tái)");
#elif (ANDROID_PLAYER)
            Console.WriteLine("安卓平臺(tái)");
#else
            Console.WriteLine("其他平臺(tái)");
#endif

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

        }



    }
}

傳統(tǒng)的方式是這樣的 : 看下面

C#的預(yù)處理指令的全局設(shè)計(jì)

用#define但是這個(gè)有個(gè)缺陷 : 你做的每一個(gè)類如果要有區(qū)分的話都要加 : #define WEB_PLAYER , 累死你 。我們可以不加這 , 用VS編譯的時(shí)候加 。 方案如下 :先上圖

C#的預(yù)處理指令的全局設(shè)計(jì)

在項(xiàng)目上右擊->屬性 , 在“生成”中可以配置 這些全局的#define , 在C++應(yīng)該叫宏吧。相當(dāng)于宏

注意 : Q 和 WEB_PLAYER 中間用; 隔開(kāi)

看下結(jié)果 :

C#的預(yù)處理指令的全局設(shè)計(jì)

測(cè)過(guò)都OK了 C#的預(yù)處理指令的全局設(shè)計(jì)

附件:http://down.51cto.com/data/2365375
向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI