将字符串转换为变量

时间:2011-10-25 18:20:43

标签: c# string debugging variables

这可能是不可能的,但它对调试非常有帮助。有时程序运行时会出现随机错误。我希望能够在(字符串)中输入内容,然后它将获取一个带有该字符串名称的变量并返回其值。

int mainNumber = 89;

输入:检索mainNumber 输出:89

这样的事情可能吗?我不想为每一个变量创建调试,因为有些东西可能会出错。我知道我可以等待bug发生,停止程序,抛出调试并再次等待,但这会更快。

4 个答案:

答案 0 :(得分:10)

您需要了解Visual Studio的variablewatchimmediate窗口。

答案 1 :(得分:6)

“即时窗口”会成为您想要的吗? http://msdn.microsoft.com/en-us/library/f177hahy(v=VS.100).aspx

答案 2 :(得分:1)

我建议阅读.NET中的Trace和Debug。您通常可以从程序的配置文件中关闭和打开TraceDebug语句,这样就不会影响运行时性能,除非您需要这些转储。然后,您可以在代码中添加Trace.Write(...)Debug.Write(...)语句,以提供您想要的输出。

答案 3 :(得分:0)

根据您的评论,听起来您需要做一些研究。以下是一些需要考虑/尝试的事情:

  1. 这是什么错误?抛出异常,数据无法正确返回等等。确定您尝试根本原因的是什么。
  2. 您知道在什么情况下会发生错误吗?既然你随机说过,你可能还不知道答案。
  3. 您是否能够在测试环境中重现或看到错误?
  4. 我过去做过的一个选项是将日志记录(通常是文本文件)添加到相关应用程序中。我记录了感兴趣的区域,并为条目添加时间戳。获取足够的信息,以便您可以充分识别正在发生的操作(变量/对象的状态之前/之后,识别操作的任何支持信息等)。

    当报告(或复制)错误时,如果报告者提供了足够的信息(即时间,他们正在做什么,应用程序特有的其他内容或他们正在做什么),您可以查看日志文件并查看发生了什么事。

    获得该信息后,您既可以确定根本原因,也可以将其缩小到更具体的区域,并将工作重点放在那里。

    这可能是一个迭代过程,取决于应用程序的大小以及可能出现的问题的面积有多大。