zoukankan      html  css  js  c++  java
  • C# #define

    https://msdn.microsoft.com/library/yt3yck0x.aspx

    使用 #define 定义符号。当您将符号用作传递给 #if 指令的表达式时,此表达式的计算结果为 true,如下例所示:

    define DEBUG

    备注
     
     
    System_CAPS_note注意

    不能像在 C 和 C++ 中的通常做法一样,使用 #define 指令来声明常数值。最好是将 C# 中的常数定义为类或结构的静态成员。如果具有多个像这样的常数,可以考虑创建一个单独的“Constants”类来保存这些常数。

    符号可用于指定编译的条件。可以使用 #if 或 #elif 来测试符号。还可以使用 conditional 特性执行条件编译。

    可以定义符号,但是无法对符号赋值。 #define 指令必须在使用任何不是预处理器指令的指令之前出现在文件中。

    也可以用 /define 编译器选项来定义符号。可以用 #undef 来取消定义符号。

    用 /define 或 #define 定义的符号与具有同一名称的变量不冲突。即,不应将变量名传递到预处理器指令,并且只能用预处理器指令计算符号。

    用 #define 创建的符号范围是在其中定义该符号的文件。

    如以下示例所示,您必须将 #define 指令置于文件的顶部。

     
    #define DEBUG
    //#define TRACE
    #undef TRACE
    
    using System;
    
    public class TestDefine
    {
        static void Main()
        {
    #if (DEBUG)
            Console.WriteLine("Debugging is enabled.");
    #endif
    
    #if (TRACE)
         Console.WriteLine("Tracing is enabled.");
    #endif
        }
    }
    // Output:
    // Debugging is enabled.
    

    有关如何取消定义符号的示例,请参见 #undef(C# 参考)

  • 相关阅读:
    变量的解构赋值 (1)对象
    变量的解构赋值 (1)数组
    const 命令
    let 命令
    【BZOJ3295】[Cqoi2011]动态逆序对 cdq分治
    【BZOJ3771】Triple 生成函数+FFT
    【BZOJ4976】宝石镶嵌 DP
    【BZOJ4972】小Q的方格纸 前缀和
    【BZOJ4998】星球联盟 LCT+并查集
    【BZOJ4710】[Jsoi2011]分特产 组合数+容斥
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/4998326.html
Copyright © 2011-2022 走看看