在MVC控制器中我定义了一个字符串变量,但我仍然收到消息:“当前上下文中不存在名称'test1'。”
这是我的代码:
public ActionResult About()
{
string test1;
test1 = "A";
return View();
}
我试图在所有3个语句上放置一个断点,但它只在“return”命令中停止。以下是Visual Studio 2012中断点的图片:
有什么想法吗?
答案 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
可能已经过优化,因为您没有在声明它的范围内使用它。