簡體   English   中英

哈希符號 # 在 C# 中的作用是什么,尤其是在 if-else 語句中?

[英]What does hash sign # do in the C# especially in if-else Statements?

我遇到了以下代碼,如下所示。 但我不明白 # 如何在 c# 中工作?

 using System;
 public class Program
    {
        public static void Main(string[] args)
        {
        #if (!pi)
                    Console.WriteLine("i");
        #else 
                    Console.WriteLine("PI undefined");
        #endif
            Console.WriteLine("ok");
            Console.ReadLine();
        }
    }

輸出:

i
ok

在 C# 中,以#開頭的行是預處理器指令(並且它們必須是該行中唯一的指令)。

當 C# 編譯器遇到#if指令,最后跟隨着#endif指令時,它僅在定義了指定符號時才編譯指令之間的代碼。

NB與 C 和 C++ 不同,您不能為符號分配數字值。 C# 中的#if語句是Boolean ,僅測試符號是否已定義。

C# 編譯器沒有單獨的預處理器。 然而,指令的處理就像有一個指令一樣。 在 C# 中,預處理器指令用於幫助條件編譯。 與 C 和 C++ 指令不同,它們不用於創建宏。 預處理器指令必須是一行中唯一的指令。

#define預處理器指令創建符號常量。 #define允許您定義一個符號,通過使用該符號作為傳遞給#if指令的表達式,該表達式的計算結果為真。 其語法如下。

當 C# 編譯器遇到一個#if指令,最后跟一個#endif指令時,它只會在定義了指定符號的情況下編譯指令之間的代碼。 C# 中的#if語句是布爾值,僅測試符號是否已定義。

#define pi 

using System;

namespace Sample
{
    internal class Program
    {
        static void Main(string[] args)
        {
        #if (!pi)
            Console.WriteLine("i");
        #else
            Console.WriteLine("PI undefined");
        #endif
        Console.WriteLine("ok");
        Console.ReadLine();
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM