zoukankan      html  css  js  c++  java
  • C# 预处理命令

    概念:指令指导编译器在实际编译开始之前对信息进行预处理。

    1.#if、#elif、#else、#endif


     

    #define Edition_1_1//它用于定义一系列成为符号的字符。
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
    #if (Edition_1_1)//    它用于测试符号是否为真。
    
                Console.WriteLine("是我版本1_1");
    #else//    它用于创建复合条件指令,与 #if 一起使用。
                 Console.WriteLine("我是其他的版本,不执行!");
    #endif//指定一个条件指令的结束。
                Console.ReadKey();
            }
        }
    }

     

    输出:是我版本1_1

    优点:当我们代码有多个版本,其它版本的代码不想注释,有可能又要重用,#define Edition_1_1 就可以改变值,运行其他版本,例如:#define Edition_1_2  改成版本1_2,上面输出的是:Console.WriteLine("我是其他的版本,不执行!");

    2.#warning、#error


    #define Bug
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
    #if Bug 
    #error "我这段代码写的有bug,注意一下!"  
    #endif
    
    #warning "这个文件,方法有多个地方在重用,改的时候请注意一下!"  
                Console.ReadKey();
            }
        }
    }
    

     生成结果:

    优点:在我们实际的项目中,一个解决方案存在多个人去修改,我们加一些告警和错误,可以提醒下一个同事,有哪些地点需要注意!

    3.#region 和#endregion

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
                #region 床位费
                Console.WriteLine($"我的床位是:50元");
                #endregion
    
                #region 餐费
                Console.WriteLine($"我的餐费是:100元");
                #endregion
    
                #region 护理费
                Console.WriteLine($"我的护理费是:150元");
                #endregion
                Console.ReadKey();
    
            }
        }
    }
    

     代码折叠效果:

    优点:可以把一些业务相同的代码,折叠放在一起,提高了代码的可阅读性。

    4.#line


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApp1
    {
        class Program
        {
            static void Main(string[] args)
            {
    #line 1 "我在Program.cs" 
                try // 行1
                {// 行2
                    int i = int.Parse("模拟报错!");// 行3
                    Console.WriteLine("我运行了!");// 行4
                }
                catch(Exception ex)
                {
                    Console.WriteLine("错误!"+ex.ToString());
                }
    
    #line default // 恢复默认行号
                Console.ReadKey();
    
            }
        }
    }
    

      输出:

     

  • 相关阅读:
    Fiddler使用教程(收藏)
    js类的几种写法
    对js中prototype的理解
    【移动端兼容问题研究】javascript事件机制详解(涉及移动兼容)--转
    js加载顺序
    html加载js那些事
    HTTP状态码详解
    JS编码解码
    css绝对定位、相对定位和文档流的那些事
    jQuery事件绑定方法bind、 live、delegate和on的区别
  • 原文地址:https://www.cnblogs.com/zhuzhi0819/p/12888049.html
Copyright © 2011-2022 走看看