Я пытался использовать следующий код в ASP.net C#:ASP.net C# Variable Декларация Внутри IF Блок
@{
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
}
}
Почему это, что второй фрагмент кода работает, хотя это не должно, так как переменные прицелы, как ожидается, до конца при закрытии }
И.Ф. заявления?
Благодаря
Чтобы быть точным, 'Page.Online' * - это переменная, это просто динамическая членская переменная' Page', которая объявлена вне области действия 'if'. Это факт, что 'Страница' находится во внешнем виде, что позволяет ссылаться на ее свойства вне выражения' if'. –