C# 单线#如果#结束?

C# 单线#如果#结束?,c#,C#,在C#of中有没有更快的方法 类似于伪代码: #if(foo, DoThat(); ) 我是一个程序员,程序员很懒;-) 如果#endif在一行上 如果只有在定义了FOO的情况下才应该调用Something,那么您可以使用以下内容来装饰它: 如果执行此操作,编译器将删除对Something的所有调用,除非定义了FOO 尝试将所有#ifs放在一个地方,而不是分散在代码中,这也是一个好主意。它不仅可以更容易地查看应用程序的行为如何根据定义的条件编译符号而变化,还可以从大多数代码中删除#if噪声

在C#of中有没有更快的方法

类似于伪代码:

#if(foo, DoThat(); )

我是一个程序员,程序员很懒;-)

如果#endif在一行上

如果只有在定义了
FOO
的情况下才应该调用
Something
,那么您可以使用以下内容来装饰它:

如果执行此操作,编译器将删除对
Something
的所有调用,除非定义了
FOO


尝试将所有
#ifs
放在一个地方,而不是分散在代码中,这也是一个好主意。它不仅可以更容易地查看应用程序的行为如何根据定义的条件编译符号而变化,还可以从大多数代码中删除
#if
噪声

对于不同的目标(例如
Thing.Foo.cs
Thing.cs
),同样的文件应该有完全不同的版本,并根据条件在csproj文件中指定应该包括哪一个版本也是有意义的



最后,请记住,代码的要点在于阅读和理解:专注于编写清晰易懂的代码,而不是编写耗时最短的代码。从长远来看,您阅读代码的时间要比编写代码的时间长得多。

您所说的“更快”是指更短的时间吗?是的,写得更快;)典型的C#团队智慧,不应该使用的代码应该很难编写。就像一个受伤的拇指一样突出,缺失的缩进警告读者。我的代码中的那些“如果”是调试和跟踪的东西,在函数的开头和结尾。@Crimson在这种情况下,用
[Conditional(“FOO”)]
标记调试和跟踪方法可能有意义?这样,您就可以随意调用它们,而不需要任何
#ifs
,必要时编译器将删除它们。例如,调试内容可能包括对的调用,该调用以
[Conditional(“DEBUG”)]
修饰。是的,添加了[Conditional…]。你的回答真是个好办法!
#if(foo, DoThat(); )
[Conditional("FOO")]
public void Something()
{
   ...
}