百度了一下关于conditional的文章,大都说的都是非常浅显,只是老生常谈了下尽量多使用conditional而少用#if,收获不大。
现在我自己测试了一下,也查阅了MSDN,有点心得,说出来与大家分享。
Conditional其实是一个属性类:ConditionalAttribute的简称。可应用于方法或者属性类。最常见的用法想必大家都知道:
[Conditional("CONDITIONA")]
public static void Test()
{
Console.WriteLine("ConditionalTest.Func.Test!!!!");
}
用方法前置属性的方式来替换原有写法:
public static void Test()
{
#if CONDITIONA
Console.WriteLine("ConditionalTest.Func.Test!!!!");
#endif
}
其实这边有个很大的陷阱:那就是上面两种的写法并不等价!用Conditional属性的方式,Test方法是否生效是取决于调用方,而用#i