gpt4 book ai didi

c# - 像PHP这样的C#中的“魔术”常量?

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

我正在为C#项目构建一个日志记录控件,并希望能够使用当前源代码文件,行,类,函数等的名称来调用它。PHP使用具有所有此信息的“魔术常数”: http://php.net/manual/en/language.constants.predefined.php,但在C#编译器语言中看不到任何类似内容。

我在寻找不存在的东西吗?

最佳答案

使用StackTrace / StackFrame类,您可以让控件查找从何处调用它,而不是传递该信息:

private static StringBuilder ListStack(out string sType)
{
StringBuilder sb = new StringBuilder();
sType = "";

StackTrace st = new StackTrace(true);
foreach (StackFrame f in st.GetFrames())
{
MethodBase m = f.GetMethod();
if (f.GetFileName() != null)
{
sb.AppendLine(string.Format("{0}:{1} {2}.{3}",
f.GetFileName(), f.GetFileLineNumber(),
m.DeclaringType.FullName, m.Name));

if (!string.IsNullOrEmpty(m.DeclaringType.Name))
sType = m.DeclaringType.Name;
}
}

return sb;
}


(我将此代码 used用于获取当前执行的方法的调用堆栈,因此它的作用超出了您的要求)

关于c# - 像PHP这样的C#中的“魔术”常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3285203/

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