1

私はこのようなかみそりのコードを持っています

bool some;

if (IsPost == false)
{

 some = True

}

次にhtml

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

そして、私がそれを実行すると、割り当てられていないローカル変数「some」の使用エラーが発生します

誰かが理由を説明できますか?かみそりのコードが最初に実行され、次にhtmlが実行されませんか?

4

2 に答える 2

5

変数に何らかの値を割り当てます。

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それに何らかの値が割り当てられることを認識し、エラーは解消されます。

確かではありませんが、できるように値を切り替えようとしているようです:IsPostsome

some = !IsPost;
于 2013-09-19T19:19:03.480 に答える
2

somevariableにデフォルト値が割り当てられていません。次のように割り当ててみてください:

bool some = false;

これは、Razor または HTML の実行優先度とは関係ありません。

于 2013-09-19T19:19:59.080 に答える