zoukankan      html  css  js  c++  java
  • Conditional 预编译器指令

    这个指令有时候也称为条件编译。以前我们都是通过#if….#else … #endif这样的语句结构,总的来说比较繁琐。现在可以直接在被调用方法之上标记Conditional。这样,调用方的代码是不变的,编译的时候自动决定是否要编译调用语句。请看下面的例子

    http://msdn.microsoft.com/zh-cn/library/4xssyw96.aspx

    #define TRACE_ON
    using System;
    using System.Diagnostics;
    
    public class Trace
    {
        [Conditional("TRACE_ON")]
        public static void Msg(string msg)
        {
            Console.WriteLine(msg);
        }
    }
    
    public class ProgramClass
    {
        static void Main()
        {
            Trace.Msg("Now in Main...");
            Console.WriteLine("Done.");
        }
    }

    关于这个Attribute的详细资料如下

    http://msdn.microsoft.com/zh-cn/library/system.diagnostics.conditionalattribute.aspx

    重点:它可用于方法和类(在.NET 2.0之前,它只可以用于方法),但是类型必须是派生自Attribute的。

    Conditional 属性还可被应用于属性类定义。在本例中,仅当定义了 DEBUG 时,自定义属性 Documentation 才向元数据添加信息。

    C#

    [Conditional("DEBUG")]
    public class Documentation : System.Attribute
    {
        string text;
    
        public Documentation(string text)
        {
            this.text = text;
        }
    }
    
    class SampleClass
    {
        // This attribute will only be included if DEBUG is defined.
        [Documentation("This method displays an integer.")]
        static void DoWork(int i)
        {
            System.Console.WriteLine(i.ToString());
        }
    }
  • 相关阅读:
    MySQL多表查询
    多表关联
    MySQL数据类型 约束
    初识数据库
    socker server和 event
    os 模块 和 os模块下的path模块
    sys 模块
    time 模块
    目录规范

  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1417333.html
Copyright © 2011-2022 走看看