当前上下文中不存在名称“test1”

时间:2013-06-30 02:32:41

标签: c# string visual-studio

在MVC控制器中我定义了一个字符串变量,但我仍然收到消息:“当前上下文中不存在名称'test1'。”

这是我的代码:

public ActionResult About()
{
  string test1;
  test1 = "A";
  return View();
}

我试图在所有3个语句上放置一个断点,但它只在“return”命令中停止。以下是Visual Studio 2012中断点的图片:

Visual Studio Breakpoint

有什么想法吗?

3 个答案:

答案 0 :(得分:5)

要进行调试,请将构建配置更改为Debug而不是Release。 Release配置可以优化代码并防止调试器看到一些局部变量。

答案 1 :(得分:1)

在给它赋值之后你永远不会使用变量,因此编译器足够聪明,知道它没有意义,它可以丢弃它。

这是编译器看到的内容:

public ActionResult About()
{
  string test1;   // Declare a variable
  test1 = "A";    // Do something meaningless with it
  return View();  // Don't use it, so throw away the two previous statements
}

编译器非常聪明,知道实际上不执行任何操作的代码只能被忽略。这是基本的优化 - 不要编译什么都不做的代码。

答案 2 :(得分:0)

test1可能已经过优化,因为您没有在声明它的范围内使用它。