ASP.net网页错误使用未分配的局部变量'some'

时间:2013-09-19 19:17:16

标签: c# asp.net razor

我有像这样的剃刀代码

bool some;

if (IsPost == false)
{

 some = True

}

然后是html

<h1>@some.ToString()</h1>

当我运行它时,我得到了错误  使用未分配的局部变量'some'

任何人都可以解释原因吗?是不是首先执行razor代码然后执行html?

2 个答案:

答案 0 :(得分:5)

为变量赋值。

bool some  = false;
  

任何人都可以解释原因吗?不首先执行razor代码然后执行   HTML?

它与Razor或HTML执行优先级无关。请考虑以下简单的C#示例:

bool some;
Console.WriteLine(some);

您正在尝试编写尚未分配任何值的some。类似于@some.ToString()的情况,您没有为其赋值任何值,编译器无法确定它是否会在if语句中获取值。

你也可以这样做:

bool some = default(bool); //same as false for bool

您还可以在some部分指定else,例如:

bool some;
bool IsPost = true;
if (IsPost == false)
{
    some = true;
}
else
{
    some = false;
}

现在编译器知道some将被分配一些值,你的错误就会消失。

不太确定,但您似乎正在尝试切换您可以执行的IsPostsome的值:

some = !IsPost;

答案 1 :(得分:2)

您尚未为some变量指定任何默认值。尝试将其指定为:

bool some = false;

这与Razor或HTML执行优先级无关