C# 是否有传播预处理器指令的工具?

C# 是否有传播预处理器指令的工具?,c#,preprocessor,C#,Preprocessor,假设我有以下类定义: class foo { #if bar private bool bar; #endif public void Do() { bar = false; } } 是否有一种方法可以将预处理器指令包装条传播到使用该条的每个位置。输出应如下所示: class foo { #if bar private bool bar; #endif public void Do() {

假设我有以下类定义:

class foo
{
    #if bar
    private bool bar;
    #endif
    public void Do()
    {
        bar = false;
    }
}
是否有一种方法可以将预处理器指令包装条传播到使用该条的每个位置。输出应如下所示:

class foo
{
    #if bar
    private bool bar;
    #endif
    public void Do()
    {
        #if bar
        bar = false;
        #endif
    }
}

基本上没有。但是,您可以将代码拆分为两个文件,并使用
部分类
,以便所有
条码
代码都位于一个单独的文件中:

部分类foo
{
杆上部分空隙(布尔值);
公营部门
{
OnBar(假);
}
}

#如果是条
部分类foo
{
私人酒吧;
杆上的部分空隙(布尔值)
{
bar=值;
}
}
#恩迪夫
现在主文件对
bar
一无所知。如果未定义
bar
编译符号,则
bar
字段不存在,也不存在
OnBar
方法
-该方法及其调用将简单地蒸发


这在许多情况下都很有用,包括额外级别的调试代码,或针对多个平台/框架/操作系统(针对不同的目标使用特定的文件)-而代码中没有填充
。\if

为什么要这样做?@Sean作为一种调试工具比较常见, IMO@Sean假设我有一个具有N个特性的应用程序的代码,我想“自动”找到每个特性的相关代码片段。作为一个入口点,我有一些代码片段已经映射到它们相应的特性(使用预处理器指令)。我需要将此信息传播到代码的其余部分。