ASP.net 网页错误 使用未赋值的局部变量“some”

本文关键字:局部变量 some 赋值 网页 net 错误 ASP | 更新日期: 2023-09-27 18:31:57

我有这样的剃须刀代码

bool some;
if (IsPost == false)
{
 some = True
}

然后是 HTML

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

当我运行它时,它得到我的错误 使用未赋值的局部变量"some"

谁能解释为什么? 难道剃刀代码不是先执行,然后再执行 HTML 吗?

ASP.net 网页错误 使用未赋值的局部变量“some”

为变量赋值。

bool some  = false;

谁能解释为什么? 剃刀代码不是先执行然后执行吗 .html?

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

bool some;
Console.WriteLine(some);

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

您还可以执行以下操作:

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

您还可以在else部分中为 some 赋值,例如:

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

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

不太确定,但似乎您正在尝试将 IsPost 的值切换some您可以执行以下操作:

some = !IsPost;

您尚未为变量分配任何默认值some。尝试像这样分配它:

bool some = false;

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