C#中宏定义#define、预处理#if #else #endif的使用

C#中预处理的使用:
预处理指令并不会被编译为执行代码中的指令,但使用预处理指令可以选择编译程序中的哪部分代码。一般在调试代码时或在发布不同功能等级的软件版本中使用。
需要特别注意的是,宏定义必须在C#的.cs源文件最开头的位置定义,在其它位置定义会报错。
预处理指令

#define BEBUG	//宏定义必须定义在源文件的最开头位置
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace 预处理的使用
{class Program{static void Main(string[] args){
#if DEBUGConsole.WriteLine("调试模式!");
#elseConsole.WriteLine("工作模式!");
#endifConsole.ReadLine();}}
}

在程序中可以通过是否定义宏开关选择编译运行不同的程序分支。

常用的预处理指令有以下几种:

  1. #define 和 #undef
  2. #if、#elif、#else 和#endif
  3. #warning 和 #error
  4. #region 和#endregion
  5. #line
  6. #pragma

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/429512.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华硕vm510l装固态硬盘_华硕VM510L拆机换固态硬盘

首先看下需要准备的东西,一台华硕笔记本,螺丝刀,固态硬盘。微信图片_201910051157221.jpg1.先把背面的螺丝全部卸掉。微信图片_20191005115722.jpg2.反过来,暴力拆键盘,从边缘部分开始撬。注意键盘下面有排线&#xff…

C# 串口接收1次数据会进入2次串口接收事件serialPort1_DataReceived,第2次进入时串口缓冲区为空

在C#中使用串口接收数据时发现,在完整的接收完一次数据后,还会再次进入串口接收事件。 在网上搜索资料发现其他开发者也有遇到该问题: [1] c#串口事件接受一次数据莫名其妙会触发两次 原文链接:https://www.52pojie.cn/threa…

js里的面向对象分析-(创建实例化对象)

ECMAScript 有两种开发模式:1.函数式(过程化),2.面向对象(OOP)。面向对象的语言有一个标志,那就是类的概念,而通过类可以创建任意多个具有相同属性和方法的对象。但是,ECMAScript 没有类的概念,因此它的对象…

swift 隐藏状态栏_如何在Swift iOS应用中隐藏状态栏?

我想删除屏幕顶部的状态栏。这不起作用:func application(application: UIApplication,didFinishLaunchingWithOptions launchOptions: NSDictionary?)-> Bool{application.statusBarHidden truereturn true}我也尝试过:func application(applicati…

C#控件跨线程内容更新

在使用C#开发winform应用程序时,经常会碰到对控件跨线程访问造成的异常。在winform中UI线程和工作线程是分开的,但在实际使用中经常会需要在工作线程更新UI线程中创建的控件。 方法1:禁用跨线程访问控件检测 .NET默认开启了禁止跨线程控件访…

document.addeventlistener方法不执行_JUnit 5 测试方法的执行优先级

前言使用单元测试有时对方法的执行顺序有要求,而默认情况下测试方法的执行并非按照编写顺序,这就导致测试用例因执行顺序而导致的不通过。这里我使用的JUnit版本是5.6.2,下面讲述如何自定义测试方法的执行优先级。TestMethodOrder这个注解标注…

2异常处理_Java处理异常2种机制关键字区别解析

在异常处理的过程中,throws和throw的区别是?throws:是在方法上对一个方法进行声明,而不进行处理,而是向上传,谁调用谁处理.throw:是在具体的抛出一个异常类型.throws的栗子:throws的话,就是这个方法有可能会产生异常,而我只是将它声明出去,我自己不处理,如果有人调用的时候,可…

Scrapy——1

python3安装scrapy:http://www.cnblogs.com/Wananbo/p/6093969.html 运行scrapy时,弹出win32错误,然后用pip install pywin32 不行,实际上是缺少了pypiwin32转载于:https://www.cnblogs.com/tangbinghaochi/p/6593543.html

TL431的用法

TL431是可控精密稳压源。它的输出电压用两个电阻就可以设置从Vref(2.5V)到36V范围内的任何值。该器件的典型动态阻抗为0.2Ω,在很多应用中用它代替稳压二极管,例如,数字电压表,运放电路,可调压电…

个人作业2——英语学习APP的案例分析

产品:必应词典Android客户端 第一部分 调研, 评测 1、第一印象 一款app给人带来的第一印象,一是图标二是界面。微软必应词典的图标好似一本书,好看简洁又与词典相呼应,好评。二来其界面打开也很清爽,每日一…

AD16原理图.schdot中批量修改标签中的文本字体、大小、颜色

1)使用鼠标左键区域选中需要修改的文本,或按住shift键使用鼠标左键选择分布在图中各处的需要修改的文本 2)按住shift键,鼠标左键双击选中的任一文本,弹出如下的SCH Inspector弹窗 3)在SCH Inspector弹窗中…

12v小型电机型号大全_鄂破碎机型号大全图,小型鄂破碎机价格

鄂破碎机,粗碎加工主力配置,因为使用频繁,很多案例都少不了,所以设备生产厂家有很多,但是随时鄂破碎机的机型更新,核心性能越来越完善,整机时产更高,而且环保性能更强悍。鄂破碎机型…

我的第一次Pascal程序

今天刚刚来学点Pascal语言,都怪我买的书大多是用Pascal语言写的,所以我只能试着学一点咯! 来一段程序员最经典的Hello World! 1 program exl_2; 2 begin 3 write(Hello World!); 4 end. 转载于:https://www.cnblogs.com/ECJTU…

C#中的前台线程和后台线程的区别

前台线程:应用程序必须运行完所有的前台线程才能退出,默认创建的线程都是前台线程。 后台线程:应用程序可以不必考虑后台线程是否已经运行完毕(包括正常退出和异常退出),只要所有的前台线程结束&#xff0…

jenkins执行bat失败_关于批处理文件:即使在BAT脚本中成功执行了ROBOCOPY命令,JENKINS作业也会失败...

我正在通过詹金斯执行Windows蝙蝠脚本。 批处理文件正在提供所需的输出,但是构建失败。我的批处理文件是..cd /d D:\\Bank\\Member\\IDif %errorlevel% neq 0 exit /b %errorlevel%mkdir OTPif %errorlevel% neq 0 exit /b %errorlevel%robocopy C:\Corporate D:\\B…

c语言 周期

//问题:如果一个字符串可以由某个长度为k的字符串重复多次得到,则称该串的周期为k.例如,abcabcabc 以3为周期(同时它也以6为周期)//输入一个长度不超过80的字符串,输出其最小的周期#include<stdio.h>#include<string.h>const int maxn100;char s[maxn];int main(){…

C#中的参数数组

参数数组允许特定类型的零个或多个实参对应一个特定的形参。 参数数组的重点如下&#xff1a; 在一个参数列表中只能有一个参数数组如果有&#xff0c;它必须是列表中的最后一个由参数数组表示的所有参数必须是同一类型 声明一个参数数组需要注意&#xff1a; 在数据类型前使…

上传本地项目到gitee_用git上传本地文件到码云gitee的方法

首先登录码云 https://gitee.com/&#xff0c;注册一个账号&#xff0c;并登录账号。1. 在码云上创建项目在码云首页顶部&#xff0c;下图所示&#xff0c;右上角头像旁边的加号&#xff0c;鼠标移上去会显示下拉的&#xff0c;点击“新建项目”。填写好项目的名称、路径等&…

51nod 1307 绳子与重物 二分+dfs / 并查集

题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId1307 题意: 题解: 方法一&#xff1a; 因为所有绳子最终组成了1棵树&#xff0c;所以我们可以通过一次DFS&#xff0c;来检测是否有某根绳子下面绑了超过他所能负荷的重量。 具体方法&#xff1a;对…

C#中string.Concat方法的使用

string.Concat方法用于连接string的一个或多个实例&#xff0c;或string的一个或多个实例的object表示形式 https://docs.microsoft.com/zh-cn/dotnet/api/system.string.concat?viewnet-5.0 1&#xff09;连接string[]或object[]数组中的元素 using System; using System.C…