我有这样的剃须刀代码
bool some;
if (IsPost == false)
{
some = True
}
然后是 html
<h1>@some.ToString()</h1>
当我运行它时它得到我的错误使用未分配的局部变量'一些'
谁能解释为什么?剃须刀代码不是先执行然后html吗?
为您的变量分配一些值。
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
您还可以分配some
一个值,else
部分如下:
bool some;
bool IsPost = true;
if (IsPost == false)
{
some = true;
}
else
{
some = false;
}
现在编译器知道some
它将被分配一些值并且您的错误会消失。
不太确定,但您似乎正在尝试切换to的值,IsPost
您some
可以执行以下操作:
some = !IsPost;
您尚未为some
变量分配任何默认值。尝试像这样分配它:
bool some = false;
这与 Razor 或 HTML 执行优先级无关