私はこのようなかみそりのコードを持っています
bool some;
if (IsPost == false)
{
some = True
}
次にhtml
<h1>@some.ToString()</h1>
そして、私がそれを実行すると、割り当てられていないローカル変数「some」の使用エラーが発生します
誰かが理由を説明できますか?かみそりのコードが最初に実行され、次に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
それに何らかの値が割り当てられることを認識し、エラーは解消されます。
確かではありませんが、できるように値を切り替えようとしているようです:IsPost
some
some = !IsPost;
some
variableにデフォルト値が割り当てられていません。次のように割り当ててみてください:
bool some = false;
これは、Razor または HTML の実行優先度とは関係ありません。