我有像这样的剃刀代码
bool some;
if (IsPost == false)
{
some = True
}
Run Code Online (Sandbox Code Playgroud)
然后是HTML
<h1>@some.ToString()</h1>
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我得到错误使用未分配的局部变量'some'
有谁能解释为什么?不首先执行razor代码然后执行html?
为变量赋值.
bool some = false;
Run Code Online (Sandbox Code Playgroud)
有谁能解释为什么?不首先执行razor代码然后执行html?
它与Razor或HTML执行优先级无关.考虑以下简单的C#示例:
bool some;
Console.WriteLine(some);
Run Code Online (Sandbox Code Playgroud)
您正在尝试编写some尚未分配任何值的内容.类似的情况是@some.ToString(),你没有为它赋值任何值,编译器无法确定它是否会在if语句中获取值.
你也可以这样做:
bool some = default(bool); //same as false for bool
Run Code Online (Sandbox Code Playgroud)
您还可以分配some一个值,else如:
bool some;
bool IsPost = true;
if (IsPost == false)
{
some = true;
}
else
{
some = false;
}
Run Code Online (Sandbox Code Playgroud)
现在编译器知道some将分配一些值,你的错误就会消失.
真的不知道,但似乎你想切换的价值IsPost来some,你可以这样做:
some = !IsPost;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
848 次 |
| 最近记录: |