• C#预处理器命令


    在最开始接触预处理指令时,是使用#region和#endregion,可以折叠代码块,方便查看。使用它可以将隶属于一个小模块的内容放到一起,折叠起来,只有在查看的时候再打开,有强迫症的应该会很喜欢。看书刚好翻到了这,就把这部分记录下来,给自己提个醒。

    预处理器指令不会转化为可执行代码,而是影响代码的编译过程,可以有选择性的进行编译,这里就有一个条件编译的概念。按我的理解,就是可执行文件生成后,预处理器命令就不存在了,它影响的是生成可执行文件的过程,它告诉编译器哪些代码需要编译,哪些代码不需要。它不会修改代码的功能,但它可以在编译阶段指定哪一部分代码进行编译,也就是最终生成的可执行文件中具有怎样的功能。它的作用在编译时得到体现。

    1. #define和#undef:作用是告诉编译器存在给定名称的变量,也就相当于普通的变量定义,可以和其他命令一起完成条件编译
    2. #if,#elif,#else,#endif:通过判断#define定义的变量,有选择性的编译代码块,从而达到条件编译的目的
    3. #warning和#error:可以通过这两个指令来判断预处理器命令是否正常书写,有无逻辑错误,warning还可以提醒执行某个操作。
    4. #region和#endregion:定义:将一段代码标记为有给定名称的一个块,作用是可以被某些编辑器识别,从而实现更好的布局。就我而言,就是用来折叠代码块的。#
    5. #line:改变编译器在警告和错误信息中显示的文件名和行号信息
    6. #pragma:抑制或还原指定的编译警告

    总的来说,1,2,3条可以用来实现条件编译。4折叠代码块,56就目前而言,我没看出来有多大的作用。

     C#不止可以使用预处理命令完成条件编译,但C#还可以通过Conditional特性来实现,以现在来看,后种方式反而更是一种趋势。

  • 相关阅读:
    已经完全付款的发票仍然可以选择并进行零金额的付款
    How to fix Safari can't download .DMG
    WPF学习笔记系列
    无废话WPF系列17:数据模版
    Mac 用GUI工具打开隐藏文件
    无废话WPF系列19:MVVM简单介绍
    ASP.NET MVC3实战系列(二):面向接口编程,提高系统可测试性。
    Windows文件被占用解决办法
    无废话WPF系列18:控件模版
    ASP.NET MVC3实战系列(三):MVC3中使用依赖注入(IOC)
  • 原文地址:https://www.cnblogs.com/prayol/p/5986082.html
Copyright © 2020-2023  润新知