ASP.net C#で次のコードを使用しようとしました。
@{
var Host = Request.ServerVariables["HTTP_HOST"];
if (Host.Contains("example.com")) {
var Online = true;
}
if (Online == true) {
// Analytics Code
}
}
しかし、エラーが返されました。
Online
変数のスコープは宣言されているIFステートメントに限定されているため、変数を外部で使用できないことがわかりました。
試行錯誤の結果、次のコードが機能することがわかりました。
@{
var Host = Request.ServerVariables["HTTP_HOST"];
if (Host.Contains("example.com")) {
Page.Online = true;
}
if (Page.Online == true) {
// Analytics Code
}
}
}
変数スコープがIFステートメントの終了時に終了すると予想されるため、2番目のスニペットが機能するはずがないのになぜこれが機能するのですか?
ありがとう