C# 预处理器指令
2018-01-22 16:14 更新
C# 预处理器指令
预处理器指令为编译器提供有关代码区域的附加信息。
最常见的预处理器指令是条件指令。
例子:
#define DEBUG
class MyClass{
int x;
void OneMethod(){
#if DEBUG
Console.WriteLine ("Testing: x = {0}", x);
#endif
}
...
}
在上面的代码中,OneMethod被编译为有条件地依赖于DEBUG符号的存在。
如果我们删除DEBUG符号,则不编译该语句。
使用#if和#elif指令,我们可以使用||,&&和!运算符执行或,和,而不是对多个符号的运算。如果定义了TESTMODE符号并且未定义DEBUG符号,则以下指令指示编译器包括以下代码:
#if TESTMODE && !DEBUG
...
#error和#warning符号防止意外误用条件指令。
例子
下表列出了预处理器伪指令。
预处理器指令 | Action |
---|---|
#define symbol | 定义符号 |
#undef symbol | 未定义符号 |
#if symbol[operator symbol2]... | 符号到测试运算符是==,!=,&&和||后跟#else,#elif和#endif |
#else | 对随后的#endif执行代码 |
#elif symbol[operator symbol2] | 结合#else分支和#if测试 |
#endif | 结束条件指令 |
#warning text | 在编译器中输出警告文本 |
#error text | 在编译器中输出错误文本 |
#pragma warning [disable | restore] | 禁用或恢复编译器警告 |
#line [number["file"] | hidden] | number指定源代码中的行; file是在计算机输出中出现的文件名; |
#region name | 标记轮廓的开始 |
#endregion | 结束轮廓区域 |
编译警告
为此,编译器允许您使用#pragma warning指令选择性地抑制警告。
在这个例子中,我们指示编译器不要警告我们消息未被使用的字段:
public class Foo{
static void Main() { }
#pragma warning disable 414
static string Message = "Hello";
#pragma warning restore 414
}
省略#pragma warning指令中的数字将禁用或恢复所有警告代码。
我们可以使用/warnaserror编译代码,以告诉编译器将任何残留警告视为错误。
以上内容是否对您有帮助:
更多建议: