美文网首页
C#使用ConditionalAttribute特性来实现代码调

C#使用ConditionalAttribute特性来实现代码调

作者: yiangdea | 来源:发表于2022-11-01 11:10 被阅读0次

条件编译:

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函数,其他环境下则不运行,简洁易懂,容易调试。

相关文章

网友评论

      本文标题:C#使用ConditionalAttribute特性来实现代码调

      本文链接:https://www.haomeiwen.com/subject/unkjtdtx.html