gpt4 book ai didi

c# - 有条件属性时创建委托(delegate)

转载 作者:IT王子 更新时间:2023-10-29 04:14:12 26 4
gpt4 key购买 nike

我有一个带有 PCLDebug 类的可移植类库:

public static class PCLDebug {
public static Action<string> LogLine { get; set; }
}

我想要做的是在外部项目中设置一次,然后能够在 PCL 中调用 LogLine 以将内容打印到 VS 输出窗口。这是我的尝试:

MyPCL.PCLDebug.LogLine = System.Diagnostics.Debug.WriteLine;

这里的问题是编译器报错,因为 System.Diagnostics.Debug.WriteLine 有一个 Debug 的条件属性:

Cannot create delegate with 'System.Diagnostics.Debug.WriteLine(string)' because it has a Conditional attribute

如果 LogLine 调用仅在调试环境中工作,我实际上没有问题。但是如何让编译器满意呢?

最佳答案

您可以尝试将其包装在 lambda 函数中:

MyPCL.PCLDebug.LogLine = s => { System.Diagnostics.Debug.WriteLine( s ); };

关于c# - 有条件属性时创建委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20638873/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com