c#条件编译
2011-04-28 15:52
190 查看
条件编译指令用于按条件包含或排除源文件中的某些部分。
按照语法的规定,条件编译指令必须写成集的形式,集的组成依次为:一个
1 #define Debug // Debugging on
2 #undef Trace // Tracing off
3 class PurchaseTransaction
4 {
5 void Commit() {
6 #if Debug
7 CheckConsistency();
8 #if Trace
9 WriteToLog(this.ToString());
#endif
#endif
CommitHelper();
}
}
#define或#undef必须定义在所有using 命名空间前面.#define类型为布尔值的真,#undef为布尔值的假.
C#为此提出了一种更好的选择:Conditional特性。使用Conditional特性,我们可以将一些函数隔离出来,使得它们只有在定义了某些环境变量或者设置了某个值之后才能发挥作用。Conditional特性最常用的地方就是将代码改编为调试语句。.NET框架已经为此提供了相关的功能支持。下面的代码展示了Conditional特性的工作原理,以及适用场合。
[ Conditional( "DEBUG" ) ]
private void CheckState( )
{
// 代码保持不变。www.elivn.com
}
Conditional的命名空间:using System.Diagnostics;
Conditional方法作用的函数必须为void返回类型的。
按照语法的规定,条件编译指令必须写成集的形式,集的组成依次为:一个
#if指令、一个或多个
#elif指令(或没有)、一个或多个
#else指令(或没有)和一个
#endif指令。指令之间是源代码的条件节。每节代码直接位于它前面的那个指令控制。条件节本身可以包含嵌套的条件编译指令,前提是这些指令构成完整的指令集。
1 #define Debug // Debugging on
2 #undef Trace // Tracing off
3 class PurchaseTransaction
4 {
5 void Commit() {
6 #if Debug
7 CheckConsistency();
8 #if Trace
9 WriteToLog(this.ToString());
#endif
#endif
CommitHelper();
}
}
#define或#undef必须定义在所有using 命名空间前面.#define类型为布尔值的真,#undef为布尔值的假.
C#为此提出了一种更好的选择:Conditional特性。使用Conditional特性,我们可以将一些函数隔离出来,使得它们只有在定义了某些环境变量或者设置了某个值之后才能发挥作用。Conditional特性最常用的地方就是将代码改编为调试语句。.NET框架已经为此提供了相关的功能支持。下面的代码展示了Conditional特性的工作原理,以及适用场合。
[ Conditional( "DEBUG" ) ]
private void CheckState( )
{
// 代码保持不变。www.elivn.com
}
Conditional的命名空间:using System.Diagnostics;
Conditional方法作用的函数必须为void返回类型的。
相关文章推荐
- C#条件编译,发布多平台和多种选择性的项目
- C# 2.0学习之--条件编译
- C# 2.0学习之--条件编译
- C#中的条件编译
- 支持多个版本的AutoCAD——C#中的条件编译——Through the Interface
- C# 条件编译备忘
- C#条件编译选项:Conditional(代替#if...#endif)
- C#条件编译选项:Conditional(代替#if...#endif)
- C#条件编译选项:Conditional(代替#if...#endif)
- C#中的#define条件编译
- c#条件编译
- C#条件编译选项:Conditional(代替#if...#endif)
- c#断点无效:"当前不会命中断点。没有与此行关联的可执行代码。可能的原因包括:条件编译或编译器优化"
- C# 条件编译备忘
- C#.NET学习笔记---C#中的条件编译
- C# #define条件编译详解
- C# 使用Conditional特性而不是#if条件编译
- C#的条件编译指令
- C#.NET学习笔记5 C#中的条件编译
- C# 条件编译