gpt4 book ai didi

c# - 使用参数中的另一个方法调用调用具有 ConditionalAttribute 的方法

转载 作者:太空宇宙 更新时间:2023-11-03 18:54:38 24 4
gpt4 key购买 nike

我正在研究 .NET C#(特别是 Xamarin.Forms)。我不太了解编译器/运行时如何在幕后使用 ConditionalAttribute

如果我有一个定义了 System.Diagnostics.ConditionalAttribute 的方法。像这样:

[System.Diagnostics.Conditional("DEBUG")]
public void LogDebug(string tag, string message, params object[] args)
{
DoSomeThing(tag, message);
SomeLogLibrary.Log($"[{tag}] {message}", args);
}

我称它为

LogDebug("Log data={0}", Newtonsoft.Json.JsonConvert.SerializeObject(somedata));

问题是:DEBUG 未定义时是否调用了 SerializeObject

重要的是 SerializeObject 或其他一些方法只是将其打印出来用于日志记录(我认为序列化对象是一项艰苦的工作)。除非我正在调试,否则我不希望它工作。

谢谢。

最佳答案

简而言之,整个方法调用将被删除。

另请参阅 Microsoft Docs ( link ) 上的解释:

If the symbol is defined, the call is included; otherwise, the call (including evaluation of the receiver and parameters of the call) is omitted.

关于c# - 使用参数中的另一个方法调用调用具有 ConditionalAttribute 的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48557849/

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