C#基础知识 - 什么是预处理()

时间:2024-10-12 16:57:04

C#编译器没有单独的预处理器,但描述的指令的处理方式与有预处理器时是一样的。这些指令用于帮助条件编译。而不同于 C 和 C++ 指令,不能使用这些指令来创建宏。预处理器指令必须是一行中唯一的说明。

工具/原料

visual studio 2015

#warning、#error

1、#warning允许从代码的特定位置生成CS1030第一级编译器警告。#warning常用于条件指令中。还可使用#error生成用户定义错误。示例效果:在程序运行过程中,可以正常运行,在错误列表中生成CS1030编译器警告

C#基础知识 - 什么是预处理()

2、#error 从代码中的特定位置生成CS1029用户定义的错误示例效果:程序无法运行

C#基础知识 - 什么是预处理()

#line

1、借助#line,可修改编译器的行号及(可选)用于错误和警告的文件名输出。#line 20 "Special",即可改变下一行的行号为20,别名为"Special',开始计数。#line default,将行号恢复至默认行号,这会对上一指令重新编号的行进行计数。

C#基础知识 - 什么是预处理()

#region、#endregion

1、利用#region,可以在使用 Visual Studio Code 编辑器的大纲功能时可展开或折叠代码块。在较长的代码文件中,能够折叠或隐藏一个或多个区域,对于编写代码十分便利。#region块必须通过#endregion指令终止。

C#基础知识 - 什么是预处理()
C#基础知识 - 什么是预处理()

#pragma、#pragma warning、#pragma checksum

1、#pragma为编译器给出特殊指令以编译它所在的文件。这些指令必须受编译器支持,不可使用#pragma创建自定义处理指令。Microsoft C# 编译器支持以下两种#pragma指令:#pragma warning#pragma checksum

C#基础知识 - 什么是预处理()

2、#pragma warning可以启用或禁用特定警告。#pragma warning disable warning-list #pragma warning restore warning-listdisable会禁用所有警告,restore会启用所有警告。以逗号分隔的警告编号的列表(“CS”前缀是可选的。)

C#基础知识 - 什么是预处理()
C#基础知识 - 什么是预处理()

3、[Obsolete("过期了",false)] 可以标记不再使用的程序元素,false为warningtrue为error

C#基础知识 - 什么是预处理()
C#基础知识 - 什么是预处理()

4、#pragma checksum生成源文件的校验和以帮助调试 ASP.N苇质缵爨ET 页面。Visual Studio 调试器使用校验和确保它可始终曜廨枳簸找到正确的源。编译器为源文件计算校验和,然后将输出发出到程序数据库 (PDB) 文件。调试器随后使用 PDB 针对它为源文件计算的校验和进行比较。class TestClass{ static int Main() { #pragma checksum "file.cs" "{406EA660-64CF-4C82-B6F0-42D48172A799}" "ab007f1d23d9" // New checksum }}#pragma checksum "filename" "{guid}" "checksum bytes" "filename"需要监视更改或更新的文件的名称。"{guid}"哈希算法的全局唯一标识符 (GUID)。"checksum_bytes"表示校验和字节的十六进制数字的字符串。必须是偶数个十六进制数字。奇数个十六进制数字会导致编译时警告出现,且指令遭忽略。

C#基础知识 - 什么是预处理()
© 手抄报圈