C#語言進階——9.C# 的預處理指令


1.C# 預處理指令的基本概念以及區域預處理指令

所有的預處理指令以#開頭,只使用空白字符在同一行上的預處理器指令之前出現。預處理器指令都沒有聲明,所以他們不以分號(;)結束。C#編譯器不具有獨立的預處理;然而,該指令進行處理,就好像有一個。在C#預處理器指令用於在條件編譯幫助。不像C和C++指令,它們不是用來創建宏。預處理指令必須在一行中只有唯一指令。

 1 //定義一個標志或者常量
 2 #define DEBUG 
 3 using System;
 4 using System.Collections.Generic;
 5 using System.Linq;
 6 using System.Text;
 7 using System.Threading.Tasks;
 8 
 9 namespace ConsoleApplication3
10 {
11     //預處理指令為了我們c#編譯器在實際編譯開始之前預處理一些信息
12     class Program
13     {
14         static void Main(string[] args)
15         {
16             #region
17             #endregion
18         }
19     }
20 }

2.C# 的條件預處理指令

介紹 C# 語言中的條件預處理指令 #define, #undef, #if, #else, #elif, #endif。

//定義一個標志或者常量預處理指令
#define DEBUG 

#undef DEBUG // if DEBUG 無法執行
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication3
{
    //預處理指令為了我們c#編譯器在實際編譯開始之前預處理一些信息
    class Program
    {
        static void Main(string[] args)
        {
#if (DEBUG)
            {
                Console.WriteLine("你好");
            }
#else
            {
                Console.WriteLine("你也好");
            }
#endif
            Console.ReadLine();
        }
    }
}

 

3.C# 行數與 pragma 預處理指令

介紹 C# 語言中 #line, #pragma, #pragma warning, #pragma checksum.

 1 //定義一個標志或者常量預處理指令
 2 #define DEBUG 
 3 using System;
 4 using System.Collections.Generic;
 5 using System.Linq;
 6 using System.Text;
 7 using System.Threading.Tasks;
 8 
 9 namespace ConsoleApplication3
10 {
11     //預處理指令為了我們c#編譯器在實際編譯開始之前預處理一些信息
12     class Program
13     {
14         static void Main(string[] args)
15         {
16 #if (DEBUG)
17 #warning 現在使用警告模式
18             //修改編譯時的行數,文件名
19 #line 200 "sdasd"
20 #error 強制出錯
21 #endif
22 //恢復行數
23 #line default
24 #error 強制出錯2
25             Console.ReadLine();
26         }
27     }
28 }

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com