gpt4 book ai didi

c# - 是否有等同于 C++ __FILE__、__LINE__ 和 __FUNCTION__ 宏的 C#?

转载 作者:太空狗 更新时间:2023-10-29 19:56:04 24 4
gpt4 key购买 nike

我有一个要迁移到 C# 的 C++ 代码。在那里,在 C++ 上,我使用以下宏定义进行调试。

#define CODE_LOCATION(FILE_NAME, LINE_NUM, FUNC_NAME) LINE_NUM, FILE_NAME, FUNC_NAME
#define __CODE_LOCATION__ CODE_LOCATION(__FILE__, __LINE__, __FUNCTION__)

C# 中是否有类似的结构?我知道 C# 中没有宏,但有没有其他方法可以在执行期间获取当前文件、行和函数值?

最佳答案

如果您使用的是 .net 4.5,则可以使用 CallerMemberName CallerFilePath CallerLineNumber attributes检索此值。

public void DoProcessing()
{
TraceMessage("Something happened.");
}

public void TraceMessage(string message,
[CallerMemberName] string memberName = "",
[CallerFilePath] string sourceFilePath = "",
[CallerLineNumber] int sourceLineNumber = 0)
{
Trace.WriteLine("message: " + message);
Trace.WriteLine("member name: " + memberName);
Trace.WriteLine("source file path: " + sourceFilePath);
Trace.WriteLine("source line number: " + sourceLineNumber);
}

如果您使用的是较旧的框架和 visual 2012,您只需在框架(相同命名空间)中声明它们即可使它们正常工作。

关于c# - 是否有等同于 C++ __FILE__、__LINE__ 和 __FUNCTION__ 宏的 C#?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13377714/

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