Tag: compiler directives

在C#中删除预编译器指令

我被要求保留一些不像遗产那样的代码,并且它充满了编译器指令,使它几乎不可读并且几乎可维护。 例证: #if CONDITION_1 protected override void BeforeAdd(LogEntity entity) #else protected override void BeforeAdd(AbstractBusinessEntity entity) #endif { #if CONDITON_1 entity.DateTimeInsert = DateTime.Now; #else ((LogEntity) entity).DateTimeInsert = DateTime.Now; #endif base.BeforeAdd(entity); } using指令甚至更漂亮: #if CONDITION_1 using CompanyName.Configuration; #endif #if CONDITION_2||CONDITION_1 using CompanyName.Data; using CompanyName.Data.SqlBuilders; #else using CompanyName.Legacy.Database; using CompanyName.Legacy.Database.SQLBuilders; using CompanyName.Legacy.Database.SQLBuilders.parameterTypes; #endif 我以为我会给ConditionalAttribute一个但是在这种情况下这不会起作用 有什么办法可以解决这个编译指令的噩梦吗? 代码是针对.NET 3.5编译的。 更新: […]

C#编译器指令

我正在查看一些C#代码,并且遇到了以下声明: #if DEBUG // Do something here #else // Do something else #endif 我假设DEBUG将在某处定义如下: #define DEBUG 但我无法找到这样的定义,尽管代码似乎表现得像设置的那样。 DEBUG是一个特例,如果是这样,它是如何设置/取消设置的?