我一直在阅读条件属性,对于编译时会发生什么,我仍然有点困惑。假设我有以下代码:
[System.Diagnostics.Conditional("FLAG")]
private void DoSomething(string myString)
{
// Do Something
}
public void Foo()
{
DoSomething("With this.");
}
假设
FLAG
未定义。编译时,将
DoSomething
方法是程序集的一部分,还是不存在?如果它确实存在,是否会调用
剂量测定
被注释掉(或从程序集中移除),或者它将调用
剂量测定
方法并看到它是有条件的,并且条件还没有满足,所以立即返回?
显然,跳到方法并不运行返回将比从不调用它花费更多的周期。在大多数情况下,这不是问题,但似乎仍然是值得知道的事情。