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

2025-11-08 12:00:12

1、#warning 允许从代码的特定位置生成 CS1030 第一级编译器警告。

#warning 常用于条件指令中。 还可使用 #error 生成用户定义错误。

示例效果:

在程序运行过程中,可以正常运行,在错误列表中生成CS1030编译器警告

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

2、#error 从代码中的特定位置生成 CS1029 用户定义的错误

示例效果:

程序无法运行

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

1、借助 #line,可修改编译器的行号及(可选)用于错误和警告的文件名输出。

#line 20 "Special",即可改变下一行的行号为20,别名为"Special',开始计数。

#line default,将行号恢复至默认行号,这会对上一指令重新编号的行进行计数。

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

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

#region 块必须通过 #endregion 指令终止。

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

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

1、#pragma 为编译器给出特殊指令以编译它所在的文件。 

这些指令必须受编译器支持,不可使用 #pragma 创建自定义处理指令。

Microsoft C# 编译器支持以下两种 #pragma 指令:

#pragma warning

#pragma checksum

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

2、#pragma warning 可以启用或禁用特定警告。

#pragma warning disable warning-list  

#pragma warning restore warning-list

disable 会禁用所有警告,restore 会启用所有警告。

以逗号分隔的警告编号的列表(“CS”前缀是可选的。)

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

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

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

false为warning

true为error

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

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

4、#pragma checksum生成源文件的校验和以帮助调试 ASP.NET 页面。

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#基础知识 - 什么是预处理()

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
相关推荐
  • 阅读量:196
  • 阅读量:34
  • 阅读量:41
  • 阅读量:64
  • 阅读量:20
  • 猜你喜欢