条件编译:
public void Func()
{
#if DEBUG
string msg = null;
msg = GetDiagnostics();
Console.WriteLine(msg);
#endif
}
但条件编译可能被滥用且可读性比较差,比如:
public void Func()
{
string msg = null;
#if DEBUG
msg = GetDiagnostics();
#endif
Console.WriteLine(msg);
}
使用Conditional修饰符的话:
接口源码:
using System.Runtime.InteropServices;
namespace System.Diagnostics
{
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true)]
[ComVisible(true)]
public sealed class ConditionalAttribute : Attribute
{
public ConditionalAttribute(string conditionString);
public string ConditionString { get; }
}
}
[Conditional("DEBUG")]
private void Func()
{
string msg = null;
msg = GetDiagnostics();
Console.WriteLine(msg);
}
仅在DEBUG下,运行Func函数,其他环境下则不运行,简洁易懂,容易调试。
网友评论