A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄冉 中级黑马   /  2012-11-13 08:12  /  1795 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

c#有许多预处理指令,都 以“#”开头。这些命令不会编译为可执行代码中的命令,但会影响编译过程。因为它们都是在编译时被调用的。
1.#define和#undef
#define可以建立一个预定义符号,当将符号用作传递给#if指令的表达式时,此表达式的计算结果为true.#undef用于删除一个预定义符号。
2.#if,#elif,#else,#endif
#if是一个条件指令,用于测试一个或者多个符号以查看它们的计算结果是不是为true。如果为true,则编译器会计算位于#if和#endif指令之间的所有代码
#elif允许创建复合条件指令。如果前面的#if和任何#elif指令表达式的计算结果都不是true时,则计算#elif表达式。如果#elif为true,编译器将计算位于#elif和下一个条件指令之间的所有代码
#else也允许创建复合条件指令。
例:

#define de1
#define de2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
#if(de1&&!de2)
            Console.WriteLine("de1 is defined");
#elif(!de1&&de2)
            Console.WriteLine("de2 is defined");
#elif(de1&&de2)
            Console.WriteLine("de1 de2 are defined");
#else
            Console.WriteLine("de1 de2 are not defined");
#endif
            Console.ReadKey();
        }
    }
}
3.#warning和#error
在程序编译过程中,当编译器遇到#warning或者#error指令时,会分别产生警告或者错误信息。若遇到#warning指令,编译器会向用户显示其后面的文本。然后继续编译。若遇到#error指令,编译器就会给用户显示后面的文本,作为一个编译错误信息。然后立即退出编译。
4.#region和#endregion
这两个指令用于把一段代码标记为有制定名称的一个块

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

1 个回复

正序浏览
学习了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马