2

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

这是我的代码:

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

我试图在所有 3 个语句上都设置一个断点,但它只在“return”命令上停止。这是一张来自 Visual Studio 2012 断点的图片:

Visual Studio 断点

有任何想法吗?

4

3 回答 3

6

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

于 2013-06-30T03:49:21.143 回答
2

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

这是编译器看到的:

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
}

编译器足够聪明,知道实际上什么都不做的代码可以被忽略。这是基本的优化——不要编译什么都不做的代码。

于 2013-06-30T03:28:39.153 回答
0

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

于 2013-06-30T02:58:24.913 回答