C# 中利用 Conditional 定义条件方法
生活随笔
收集整理的這篇文章主要介紹了
C# 中利用 Conditional 定义条件方法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
? 利用 Conditional 屬性,程序員可以定義條件方法。Conditional 屬性通過測試條件編譯符號來確定適用的條件。當(dāng)運(yùn)行到一個(gè)條件方法調(diào)用時(shí),是否執(zhí)行該調(diào)用,要根據(jù)出現(xiàn)該調(diào)用時(shí)是否已定義了此符號來確定。如果定義了此符號,則執(zhí)行該調(diào)用;否則省略該調(diào)用(包括對調(diào)用的參數(shù)的計(jì)算)。
?
?
條件方法要受到以下限制:
- 條件方法必須是類聲明或結(jié)構(gòu)聲明中的方法。如果在接口聲明中的方法上指定?Conditional?屬性,將出現(xiàn)編譯時(shí)錯(cuò)誤。
- 條件方法必須具有?void?返回類型。
- 不能用?override?修飾符標(biāo)記條件方法。但是,可以用?virtual?修飾符標(biāo)記條件方法。此類方法的重寫方法隱含為有條件的方法,而且不能用?Conditional?屬性顯式標(biāo)記。
- 條件方法不能是接口方法的實(shí)現(xiàn)。否則將發(fā)生編譯時(shí)錯(cuò)誤。
- 如果條件方法用在“委托創(chuàng)建表達(dá)式”中,也會(huì)發(fā)生編譯時(shí)錯(cuò)誤
?
Ps.盡量使用Conditional屬性代替#if和#endif
/*MyConditional.cs*///#define DEBUG using System; using System.Diagnostics; class Info {//[Conditional("DEBUG")]public static void Trace(string strMessage){Console.WriteLine(strMessage);}[Conditional("DEBUG")]public static void TraceX(string strFormat,params object[] list){Console.WriteLine(strFormat, list);} }class TestConditional {public static void Main(){Info.Trace("Cool!");Info.TraceX("{0} {1} {2}","C", "U", 2001);} }/* 編譯方式1: csc /define:DEBUG /out:1.exe MyConditional.cs運(yùn)行結(jié)果1: Cool! C U 2001 *//* 編譯方式2: csc /out:1.exe MyConditional.cs運(yùn)行結(jié)果2: Cool! */
轉(zhuǎn)載于:https://www.cnblogs.com/lizhenlin/p/6542430.html
總結(jié)
以上是生活随笔為你收集整理的C# 中利用 Conditional 定义条件方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到已故的人复活了是什么意思
- 下一篇: 孕妇梦到红色的蛇预示着什么意思