C# 预处理器指令:#pragma
#pragma 为编译器提供特殊的指令,以说明如何编译包含杂注的文件。这些指令必须是编译器支持的指令。也就是说,不能使用 #pragma 创建自定义预处理指令。Microsoft C# 编译器支持以下两个 #pragma 指令:
#pragma pragma-name pragma-arguments |
本在线速查手册由www.w♥3♥x♥u♥e.com提供,请勿盗用!
参数
- pragma-name
-
可识别杂注的名称。
- pragma-arguments
-
特定于杂注的参数。
#pragma warning
#pragma warning 可启用或禁用某些警告。
#pragma warning disable warning-list #pragma warning restore warning-list |
本在线速查手册由www.w♥3♥x♥u♥e.com提供,请勿盗用!
参数
- warning-list
-
警告编号的逗号分隔列表。只输入数字,不包括前缀 "CS"。
当没有指定警告编号时,disable 禁用所有警告,而 restore 启用所有警告。
示例
// pragma_warning.cs using System; #pragma warning disable 414, 3021 [CLSCompliant(false)] public class C { int i = 1; static void Main() { } } #pragma warning restore 3021 [CLSCompliant(false)] // CS3021 public class D { int i = 1; public static void F() { } } |
本在线速查手册由www.w♥3♥x♥u♥e.com提供,请勿盗用!
#pragma checksum
生成源文件的校验和,以帮助调试 ASP.NET 页。
#pragma checksum "filename" "{guid}" "checksum bytes" |
本在线速查手册由www.w♥3♥x♥u♥e.com提供,请勿盗用!
参数
- "filename"
-
要求监视更改或更新的文件的名称。
- "{guid}"
-
文件的全局唯一标识符 (GUID)。
- "checksum_bytes"
-
十六进制数的字符串,表示校验和的字节。必须是偶数位的十六进制数。奇数位的十六进制数字会导致编译时警告,然后指令被忽略。
备注
Visual Studio 调试器使用校验和来确保找到的总是正确的源。编译器计算源文件的校验和,然后将输出发出到程序数据库 (PDB) 文件。最后,调试器使用 PDB 来比较它为源文件计算的校验和。
此解决方案不适用于 ASP.NET 项目,因为算出的校验和是生成的源文件的校验和,而不是 .aspx 文件的校验和。为解决此问题,#pragma checksum 为 ASP.NET 页提供了校验和支持。
在 Visual C# 中创建 ASP.NET 项目时,生成的源文件包含 .aspx 文件(从该文件生成源文件)的校验和。然后,编译器将此信息写入 PDB 文件。
如果编译器在该文件中没有遇到 #pragma checksum 指令,它将计算校验和,然后将算出的值写入 PDB 文件。
示例
class TestClass { static int Main() { #pragma checksum "file.cs" "{3673e4ca-6098-4ec1-890f-8fceb2a794a2}" "{012345678AB}" // New checksum } } |
本在线速查手册由www.w♥3♥x♥u♥e.com提供,请勿盗用!