【问题标题】:Can you get a list of variables on the stack in C#?你能在 C# 中获取堆栈上的变量列表吗?
【发布时间】:2010-09-27 10:28:33
【问题描述】:

所有,只是想知道是否可以在 .NET/C# 中获取堆栈上的变量列表及其值?我正在为我的应用程序创建一个异常处理程序,除了标准堆栈跟踪之外,我还想查看堆栈上任何变量的名称和值。知道这是否可以做到吗?

【问题讨论】:

    标签: c# variables stack diagnostics


    【解决方案1】:

    是的,StackFrame 类可以帮助您。

    Linkage

    类似的东西

    var currentStackFrame = new StackFrame(1);
    var props = currentStackFrame.GetMethod().GetParameters(); 
    

    【讨论】:

    • 这只会获取参数的名称,而不是值,并且不会告诉您堆栈上的其他变量。
    • @Jimmy 我发现如果你只是链接到一篇文章,堆栈溢出将变成:一,就像网络上每个人都说 RTFM 的其他论坛一样,二它并没有真正帮助任何人,因为大多数时候人们会来这里索要代码,因为他们很难理解。
    • 是的,正如 earwicker 所说,我认为这不允许您获取任何值(尽管您可以通过遍历 StackTrace 对象上的每一帧来获取堆栈上的其他变量)。关于如何获取值的任何想法?
    • @Earwicker/Alphamacaroon:你不能使用反射来扩展这种情绪并获取堆栈中每个变量的变量值吗?
    • 您几乎需要一个对象实例来使用反射获取任何值。不知道我们会在哪里从 StackFrame 或 StackTrace 方法中获取对象实例。
    猜你喜欢
    • 2015-08-13
    • 1970-01-01
    • 2015-12-17
    • 2011-04-28
    • 2010-12-12
    • 2012-10-13
    • 2021-10-13
    • 2011-04-13
    • 1970-01-01
    相关资源
    最近更新 更多