zoukankan      html  css  js  c++  java
  • Effective C# 学习笔记(四)使用Conditional Attributes 替代 #if

    用法

    [Conditional("DEBUG"),

    Conditional("TRACE")]

    private void CheckState()

    {

    // Grab the name of the calling routine:

    string methodName =

    new StackTrace().GetFrame(1).GetMethod().Name;

    Trace.WriteLine("Entering CheckState for Person:");

    Trace.Write("\tcalled by ");

    Trace.WriteLine(methodName);

    Debug.Assert(lastName != null,

    methodName,

    "Last Name cannot be null");

    Debug.Assert(lastName.Length > 0,

    methodName,

    "Last Name cannot be blank");

    Debug.Assert(firstName != null,

    methodName,

    "First Name cannot be null");

    Debug.Assert(firstName.Length > 0,

    methodName,

    "First Name cannot be blank");

    Trace.WriteLine("Exiting CheckState for Person");

     

    }

    private void CheckStateBad()

    {

    // The Old way:

    #if BOTH

    Trace.WriteLine("Entering CheckState for Person");

    // Grab the name of the calling routine:

    string methodName =

    new StackTrace().GetFrame(1).GetMethod().Name;

    Debug.Assert(lastName != null,

    methodName,

    "Last Name cannot be null");

    Debug.Assert(lastName.Length > 0,

    methodName,

    "Last Name cannot be blank");

     

    Debug.Assert(firstName != null,

    methodName,

    "First Name cannot be null");

    Debug.Assert(firstName.Length > 0,

    methodName,

    "First Name cannot be blank");

    Trace.WriteLine("Exiting CheckState for Person");

    #endif

    }

     

    定义组合变量

    #if ( VAR1 && VAR2 )

    #define BOTH

    #endif

  • 相关阅读:
    EPPlus实战篇——Excel写入
    EPPlus实战篇——Excel读取
    Elasticsearch,Kibana,Logstash,NLog实现ASP.NET Core 分布式日志系统
    ElasticSearch+NLog+Elmah实现Asp.Net分布式日志管理
    C盘清理
    vs2017离线安装且安装包不占用C盘空间
    CommandLine exe参数
    Nuget 打包 for .Net Standart project
    Redis 应用:缓存
    Redis架构设计
  • 原文地址:https://www.cnblogs.com/haokaibo/p/2096529.html
Copyright © 2011-2022 走看看