时间:2021-05-20
条件编译是C#比Java多出的东西,但我跟前辈请教后,他们都说条件编译在实际的项目开发中不怎么使用.鉴于是新内容,我还是做做笔记,理解一下好了.
条件编译属于编译预处理的范畴,它能让我们通过条件编译的机制,将部分代码包括进来或者排除出去,其作用与if-else类似.
条件编译指令有以下四种 #if #elif #else #endif 条件编译指令有以下四种
#if
#elif
#else
#endif
下面我们通一些例子来说明它们的用法
复制代码 代码如下:
#define Debug
class Class1
{
#if Debug
void Trace(string s) {}
#endif
}
执行时由于第一行已经使用#define 指令定义了符号Debug, #if 的条件满足,所以这段代码等同于
复制代码 代码如下:
class Class1
{
void Trace(string s) {}
}
再比如:
复制代码 代码如下:
#define A
#define B
#undef C
class D
{
#if C
void F() {}
#elif A && B
void I() {}
#else
void G() {}
#endif
}
其编译效果等同于:
复制代码 代码如下:
class C
{
void I() {}
}
#if 指令可以嵌套使用, 例如:
复制代码 代码如下:
#define Debug // Debugging on
#undef Trace // Tracing off
class PurchaseTransaction
{
void Commit()
{
#if Debug
CheckConsistency();
#if Trace
WriteToLog(this.ToString());
#endif
#endif
CommitHelper();
}
}
预编译和条件编译指令还可以帮助我们在程序执行过程中发出编译的错误或警告,相应的指令是#warning 和#error,下面的程序展示了它们的用法:
复制代码 代码如下:
#define DEBUG
#define RELEASE
#define DEMO VERSION
#if DEMO VERSION && !DEBUG
#warning you are building a demo version
#endif
#if DEBUG && DEMO VERSION
#error you cannot build a debug demo version
#endif
using System;
class Demo
{
public static void Main()
{
Console.WriteLine(“Demo application”);
}
}
作者:notifier
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
刚学习c#的朋友要自己手动编译c#代码加深记忆,现在总结下如果手动编译!1、先找到系统的.net环境在一般在C:\Windows\Microsoft.NET\F
本文实例讲述了C#实现控制Windows系统关机、重启和注销的方法。分享给大家供大家参考。具体分析如下:使用.NET和C#.NET,我们可以对当前PC执行关机,
大家好,这是[C#.NET拾遗补漏]系列的第07篇文章。在C#中,大多数方法都是通过return语句立即把程序的控制权交回给调用者,同时也会把方法内的本地资源释
本文实例讲述了C#.NET实现网页自动登录的方法。分享给大家供大家参考。具体如下:用C#语言编写一个WindowsForm应用程序,实现自动登录一个特定的页面。
本文实例分析了C#中var关键字用法。分享给大家供大家参考。具体方法如下:C#关键字是伴随着.NET3.5以后,伴随着匿名函数、LINQ而来,由编译器帮我们推断