请问 C# 里面有没有宏定义、#if 之类的C 对应语法

number007cool 2020-01-14 10:14:12
比如程序里面要像c一样定义一个宏,

比如有一段代码根据宏定义决定编译哪部分。
...全文
607 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2020-01-15
  • 打赏
  • 举报
回复
引用 8 楼 number007cool 的回复:
[quote=引用 7 楼 贵阳老马马善福专业维修游泳池堵漏防水工程 的回复:]条件编译 #if .. 这个C#有的 macro,比如 define C#没有
if后面那个玩意从哪来呢,如果不能define的话 [/quote] 可以在编译属性里面定义符号
number007cool 2020-01-15
  • 打赏
  • 举报
回复
引用 7 楼 贵阳老马马善福专业维修游泳池堵漏防水工程 的回复:
条件编译 #if .. 这个C#有的
macro,比如 define C#没有
if后面那个玩意从哪来呢,如果不能define的话
极客诗人 2020-01-15
  • 打赏
  • 举报
回复
预编译 了解一下
number007cool 2020-01-15
  • 打赏
  • 举报
回复
引用 9 楼 贵阳老马马善福专业维修游泳池堵漏防水工程 的回复:
[quote=引用 8 楼 number007cool 的回复:] [quote=引用 7 楼 贵阳老马马善福专业维修游泳池堵漏防水工程 的回复:]条件编译 #if .. 这个C#有的 macro,比如 define C#没有
if后面那个玩意从哪来呢,如果不能define的话 [/quote] 可以在编译属性里面定义符号[/quote] 好的 我大概明白怎么操作的了
threenewbee 2020-01-14
  • 打赏
  • 举报
回复
条件编译 #if .. 这个C#有的
macro,比如 define C#没有
number007cool 2020-01-14
  • 打赏
  • 举报
回复
引用 5 楼 一支糖包仔 的回复:
我在项目中看到的所有类似代码,还有网上资料搜到的,似乎都只能用来判断运行环境。
如果是这样 用处就不大了
一支糖包仔 2020-01-14
  • 打赏
  • 举报
回复
我在项目中看到的所有类似代码,还有网上资料搜到的,似乎都只能用来判断运行环境。
一支糖包仔 2020-01-14
  • 打赏
  • 举报
回复
引用 3 楼 number007cool 的回复:
貌似不行啊, 编译报错啊
我也不清楚,我是直接从工作项目里面赋值出来的。
number007cool 2020-01-14
  • 打赏
  • 举报
回复
引用 2 楼 一支糖包仔 的回复:
貌似不行啊, 编译报错啊

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

#define USE_STANDERD_USB_PROCTOL

namespace vs_XXXXX
一支糖包仔 2020-01-14
  • 打赏
  • 举报
回复
1.已知strcpy 函数的原型是: char *strcpy(char *strDest, const char *strSrc); 其中strDest 是目的字符串,strSrc 是源字符串。不调用C++/C 的字符串库函数, 请编写函数 strcpy 答案: char *strcpy(char *strDest, const char *strSrc) { if ( strDest == NULL || strSrc == NULL) return NULL ; if ( strDest == strSrc) return strDest ; char *tempptr = strDest ; while( (*strDest++ = *strSrc++) != ‘\0’) ; return tempptr ; } 3.12 main 函数执行以前,还会执行什么代码? (Autodesk) 答案:全局对象的构造函数会在main 函数之前执行。 3.13 描述内存分配方式以及它们的区别。 (Autodesk , Microsoft) 答案:1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块 内存在程序的整个运行期间都存在。例如全局变量,static 变量。 (2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上 创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理 器的指令集。 (3) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc 或new 申 请任意多少的内存,程序员自己负责在何时用free 或delete 释放内存。动态内 存的生存期由我们决定,使用非常灵活,但问题也最多。 3.14 什么是虚拟存储器?virtual memory 怎样映射到physical memory?页面替换 算法有哪些? (Microsoft) 见操作系统 p238 页。掌握的页面替换算法NRU,FIFO,第二次机会页面替换 算法,LRU 3.15 有四个同样的容器,里面装满了粒数相同的药丸,正常药丸的质量为m,变 质药丸的质量为m+1,现在已知这四个容器中,有一个装的全是变质药丸,用电 子秤只称一次,找出哪个容器装的是变质药丸(Microsoft) 答案:把四个容器依次编号为1、2、3、4,然后从中分别取出1、2、3、4 粒药 丸,称这10 粒药丸的质量,如果质量为10m+1,则说明第一个容器装的是变质药 丸,如果为10m+2 则说明第二个装的变质药丸,依次类推。 3.16 比较一下C++中static_cast 和 dynamic_cast 的区别。 (Autodesk) 。。。。。。。。。

111,119

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧