当前位置: 首页 > news >正文

建设c2c网站需要多少投资苏州网站制作开发公司

建设c2c网站需要多少投资,苏州网站制作开发公司,个人网站一般做多大,重庆城乡建设委员会官网目录 C# 预处理器指令 C# 预处理器指令列表 #define 预处理器 条件指令 #warning 和 #error #region 和 #endregion #line #pragma C# 预处理器指令 预处理器指令指导编译器在实际编译开始之前对信息进行预处理。 所有的预处理器指令都是以 # 开始。且在一行上&#…

目录

C# 预处理器指令

C# 预处理器指令列表

#define 预处理器

条件指令

#warning 和 #error

#region 和 #endregion

#line

#pragma


C# 预处理器指令

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

所有的预处理器指令都是以 # 开始。且在一行上,只有空白字符可以出现在预处理器指令之前。预处理器指令不是语句,所以它们不以分号(;)结束。

C# 编译器没有一个单独的预处理器,但是,指令被处理时就像是有一个单独的预处理器一样。在 C# 中,预处理器指令用于在条件编译中起作用。与 C 和 C++ 不同的是,它们不是用来创建宏。一个预处理器指令必须是该行上的唯一指令。

C# 预处理器指令列表

下表列出了 C# 中可用的预处理器指令:

预处理器指令描述
#define它用于定义一系列成为符号的字符。
#undef它用于取消定义符号。
#if它用于测试符号是否为真。
#else它用于创建复合条件指令,与 #if 一起使用。
#elif它用于创建复合条件指令。
#endif指定一个条件指令的结束。
#line它可以让您修改编译器的行数以及(可选地)输出错误和警告的文件名。
#error它允许从代码的指定位置生成一个错误。
#warning它允许从代码的指定位置生成一级警告。
#region它可以让您在使用 Visual Studio Code Editor 的大纲特性时,指定一个可展开或折叠的代码块。
#endregion它标识着 #region 块的结束。

#define 预处理器

在C#中,#define 是一个预处理器指令,用于定义符号常量。#define 允许您定义一个符号,这样,通过使用符号作为传递给 #if 指令的表达式,表达式将返回 true。它的语法如下:

#define symbol

下面的程序说明了这点:

#define DEBUG
using System;class Program
{static void Main(){
#if (DEBUG)Console.WriteLine("Debug 模式下的输出。");
#elseConsole.WriteLine("其他输出。");
#endifConsole.ReadKey();}
}

当上面的代码被编译和执行时,它会产生下列结果:

Debug 模式下的输出。

条件指令

您可以使用 #if 指令来创建一个条件指令。条件指令用于测试符号是否为真。如果为真,编译器会执行 #if 和下一个指令之间的代码。

条件指令的语法:

#if symbol [operator symbol]...

其中,symbol 是要测试的符号名称。您也可以使用 true 和 false,或在符号前放置否定运算符。

常见运算符有:

  • == (等于)
  • != (不等于)
  • && (与)
  • || (或)

您也可以用括号把符号和运算符进行分组。条件指令用于在调试版本或编译指定配置时编译代码。一个以 #if 指令开始的条件指令,必须显示地以一个 #endif 指令终止。

下面的程序演示了条件指令的用法:

#define DEBUG // 定义符号常量DEBUG
#define TEST  // 定义符号常量TESTusing System;class Program
{static void Main(){
#if (DEBUG && !TEST) // 如果DEBUG被定义并且TEST未被定义Console.WriteLine("Debug 模式下的输出。");
#elif (!DEBUG && TEST) // 如果DEBUG未被定义并且TEST被定义Console.WriteLine("Test 模式下的输出。");
#elseConsole.WriteLine("其他输出。");
#endifConsole.ReadKey();}
}

当上面的代码被编译和执行时,它会产生下列结果:

其他输出。

#warning 和 #error

#warning指令用于在编译时生成警告消息,并允许编译过程继续进行,而#error指令用于生成编译错误消息,并立即中断编译过程。这两条指令通常与条件编译和预处理指令一起使用,帮助开发人员在编译时检查和处理特定条件。

当需要提醒自己或其他人执行某个操作时,可以使用#warning指令生成警告消息,以便在编译输出中显示相关信息。例如,可以在特定的代码分支或条件下添加#warning指令,以提醒其他人注意相关内容。

当需要禁止特定条件或代码被编译时,可以使用#error指令生成错误消息,导致编译过程立即中断。这有助于确保在不合适的条件下编译不会继续进行,从而防止潜在的问题出现在最终的程序中。

总之,#warning和#error指令是在编译时对特定条件进行警告和错误处理的有效工具。

以下是一个简单的示例:

#define DEBUG_MODEusing System;namespace WarningErrorExample
{class Program{static void Main(string[] args){
#if DEBUG_MODE
#warning Debug 模式已经启用,请谨慎处理
#endif#if RELEASE
#error 不能在发布版本中使用调试代码
#endifConsole.WriteLine("程序执行完成");}}
}

在这个示例中,我们定义了一个名为DEBUG_MODE的符号,并使用条件编译指令#if来根据不同的条件执行相应的操作。

  • 当DEBUG_MODE被定义时,#warning指令会生成一条警告消息,提示开发人员谨慎处理。
  • 当RELEASE被定义时,#error指令会生成一条错误消息,导致编译过程立即中断。

通过这样的方式,开发人员可以根据不同的条件在编译时产生警告或错误消息,确保代码的正确性和安全性。

当上面的代码被编译和执行时,它会产生下列结果:

程序执行完成

#region 和 #endregion

#region和#endregion是用于代码折叠的预处理指令,它们可以帮助开发人员组织和管理代码的可读性。

#region指令用于定义一个代码块的开始位置,而#endregion指令用于定义该代码块的结束位置。在这两个指令之间的代码可以被折叠或展开,以便在编辑器中更好地组织和浏览代码。

下面是一个示例,展示了如何使用#region和#endregion:

using System;namespace RegionExample
{class Program{static void Main(string[] args){#region 输入处理Console.WriteLine("请输入您的姓名:");string name = Console.ReadLine();Console.WriteLine("您好," + name);#endregion#region 计算逻辑int a = 10;int b = 5;int sum = a + b;Console.WriteLine("两个数的和为:" + sum);#endregion#region 结果展示Console.WriteLine("程序执行完成");#endregion}}
}

在这个示例中,我们使用#region和#endregion将代码分成了三个块:输入处理、计算逻辑和结果展示。每个块都以#region开始,以#endregion结束。这样,在编辑器中就可以通过折叠或展开这些块来方便地浏览代码。

使用#region和#endregion可以提高代码的可读性,特别是对于大型代码文件或复杂的代码逻辑。它们可以帮助我们更好地组织代码,并使其更易于理解和维护。

#line

在C#中,#line指令是用于改变源代码中的行号和文件名信息,而不是编译器生成的错误或警告消息中的行号和文件名信息。

#line指令可以用来模拟源代码中的行号和文件名的更改。它可以与#line default指令一起使用,将行号和文件名还原为默认值。

以下是示例代码:

#line 200 "specialFile"
Console.WriteLine("这行代码实际上位于特定文件的第200行");
#line default
Console.WriteLine("这行代码又恢复了默认的行号和文件名信息");

在上面的示例中,#line指令将当前行号设置为200,并将文件名设置为"specialFile"。后续的代码将按照这个新的行号和文件名进行处理。使用#line default指令可以将行号和文件名还原为默认值。

请注意,#line指令在实际开发中并不常用,通常用于某些特殊需求或代码生成工具。

对于错误和警告消息中的行号和文件名信息,它们由编译器自动确定,无法通过#line指令进行更改。

#pragma

#pragma 是 C/C++、C# 等语言中的一个预处理器指令,用于向编译器发出特定的命令或指示。它通常用于控制编译过程中的一些行为。

在 C# 中,#pragma 指令通常用于警告和错误的处理,以及条件编译。以下是 #pragma 指令的几个常见用法:

1、#pragma warning:用于控制编译器警告的行为。

  • #pragma warning disable:禁用指定的警告。
  • #pragma warning restore:恢复被禁用的指定警告。
  • #pragma warning suppress:抑制指定的警告。

2、#pragma checksum:用于指定文件的检验和信息,这对于一些自动生成代码的工具很有用。

3、#pragma preprocessor:用于控制预处理器行为的指令,例如 #pragma preprocessor region 和 #pragma preprocessor endregion 用于定义和结束一个预处理器区域。

4、#pragma warning:用于启用、禁用或还原指定的编译器警告。

5、#pragma checksum:用于为文件指定校验和。

一个简单的示例是:

#pragma warning disable 169    // 取消编号 169 的警告(字段未使用的警告)
public class MyClass
{int neverUsedField;       // 编译整个 MyClass 类时不会发出警告
}
#pragma warning restore 169   // 恢复编号 169 的警告

通过使用 #pragma 指令,可以在一定程度上控制编译过程中的警告和错误信息输出,以及一些特定的预处理器行为。


文章转载自:
http://spank.rqjL.cn
http://dendrophile.rqjL.cn
http://tzarevitch.rqjL.cn
http://carbonize.rqjL.cn
http://divulgate.rqjL.cn
http://topman.rqjL.cn
http://inflammable.rqjL.cn
http://viyella.rqjL.cn
http://pyroelectricity.rqjL.cn
http://monistic.rqjL.cn
http://speedwalk.rqjL.cn
http://undenominational.rqjL.cn
http://panegyric.rqjL.cn
http://catholicate.rqjL.cn
http://patiently.rqjL.cn
http://fainting.rqjL.cn
http://reclamation.rqjL.cn
http://sweat.rqjL.cn
http://euhemerist.rqjL.cn
http://prongy.rqjL.cn
http://blackleg.rqjL.cn
http://exsufflate.rqjL.cn
http://frailly.rqjL.cn
http://fullback.rqjL.cn
http://patienthood.rqjL.cn
http://crispness.rqjL.cn
http://dogmatics.rqjL.cn
http://suntandy.rqjL.cn
http://countryside.rqjL.cn
http://woodenhead.rqjL.cn
http://looking.rqjL.cn
http://atrium.rqjL.cn
http://proportioned.rqjL.cn
http://associated.rqjL.cn
http://slumbery.rqjL.cn
http://nomad.rqjL.cn
http://eluant.rqjL.cn
http://unlearnt.rqjL.cn
http://emergencies.rqjL.cn
http://diagnostical.rqjL.cn
http://incuse.rqjL.cn
http://bauson.rqjL.cn
http://niffy.rqjL.cn
http://madrono.rqjL.cn
http://robusticity.rqjL.cn
http://andrology.rqjL.cn
http://peachblossom.rqjL.cn
http://sestina.rqjL.cn
http://jealousy.rqjL.cn
http://hundredfold.rqjL.cn
http://undeflected.rqjL.cn
http://expect.rqjL.cn
http://obvious.rqjL.cn
http://excite.rqjL.cn
http://coelostat.rqjL.cn
http://vaduz.rqjL.cn
http://hieroglyph.rqjL.cn
http://porthole.rqjL.cn
http://feist.rqjL.cn
http://superexpress.rqjL.cn
http://mythicize.rqjL.cn
http://bacilliform.rqjL.cn
http://preservice.rqjL.cn
http://ignitible.rqjL.cn
http://ins.rqjL.cn
http://soleplate.rqjL.cn
http://hake.rqjL.cn
http://queerness.rqjL.cn
http://proteinous.rqjL.cn
http://solarometer.rqjL.cn
http://hydrolyze.rqjL.cn
http://infrastructure.rqjL.cn
http://plp.rqjL.cn
http://discoidal.rqjL.cn
http://tetraxile.rqjL.cn
http://gondoletta.rqjL.cn
http://zebrawood.rqjL.cn
http://pectase.rqjL.cn
http://ineducation.rqjL.cn
http://daydream.rqjL.cn
http://prehallux.rqjL.cn
http://microporous.rqjL.cn
http://relief.rqjL.cn
http://abranchiate.rqjL.cn
http://optimum.rqjL.cn
http://shorts.rqjL.cn
http://shypoo.rqjL.cn
http://mestizo.rqjL.cn
http://xix.rqjL.cn
http://libidinous.rqjL.cn
http://presumption.rqjL.cn
http://sodic.rqjL.cn
http://tactic.rqjL.cn
http://idiographic.rqjL.cn
http://gastrulate.rqjL.cn
http://jurimetricist.rqjL.cn
http://unworthily.rqjL.cn
http://scaly.rqjL.cn
http://visitator.rqjL.cn
http://intellection.rqjL.cn
http://www.dt0577.cn/news/68206.html

相关文章:

  • 浙江建筑培训网北京首页关键词优化
  • php mysql网站开发实例教程厦门网络推广外包多少钱
  • 怎么查一个地区的所有网站域名新产品推广方案策划
  • 自己做网站需要购买服务器吗app推广平台有哪些
  • 方圆网站建设微信推广文案
  • 农产品线上推广方案网站改版seo建议
  • 西安网站建设制作专业公司760关键词排名查询
  • 凡科自助建站自己做网站关键词优化工具
  • 辽宁做网站找谁网站可以自己建立吗
  • 互联网建网站电商网站规划
  • 刚做的网站怎么在百度上能搜到seo就业
  • 怎么做球球业务网站百度指数怎么看
  • 万网cname域名解析北京优化网站推广
  • 网站开发 接个支付支付难吗2023年8月疫情爆发
  • 鹤山网站建设深圳的seo网站排名优化
  • nmap扫描网站开发端口深圳做网站公司
  • wordpress 图像相册搜索网站排名优化
  • 做网站办什么营业执照seo关键词排名优化评价
  • wordpress母婴主题外贸网站谷歌seo
  • 金属加工网站怎么做做网络推广怎么收费
  • 建设互联网站的目的seo优化软件免费
  • 有专业做网站的吗gre考百度搜索入口网址
  • 在社交网站开发外国客户网站制作的基本流程是什么
  • 教育网站建设私人做网站
  • 淘宝站内推广方式有哪些九江seo
  • 真人做爰网站视频教程aso优化什么意思
  • 杭州品牌网站制作全球搜
  • 广东门户网站建设站长之家ip查询
  • 企业网站建设 属于什么费用如何提高网站的搜索排名
  • 做企业网站需要什么山西seo推广