Почему я не могу использовать объект, созданный в операторе if?C#

Место общения программистов C#
Ответить
Anonymous
 Почему я не могу использовать объект, созданный в операторе if?

Сообщение Anonymous »

Я создаю объект в операторе if, как и раньше. Но на этот раз код почему-то не выполняется, и отладчик говорит, что "имя TempObj не находится в текущем контексте", грубо переведено. Как будто он думает, что его не существует.

Код: Выделить всё

private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Grid.Children.Clear();
Grid.RowDefinitions.Clear();

foreach (Setting value in SettingList.Values)
{
if(value.KategorieName == (String)ListBox.SelectedValue)
{
Label TempLabel = new Label();
TempLabel.Content = value.Name;

if (value is BoolSetting)
{
CheckBox TempObj = new CheckBox();
TempObj.IsChecked = value.ToBoolean();
}
else if (!(value is BoolSetting)
{
TextBox TempObj = new TextBox();
TempObj.Text = value.Value;
}
else
{
Label TempObj = new Label();
TempObj.Content = "Unable to reach";
}

AddToGrid(MainWindow_SettingsGrid, TempLabel, TempObj);
}
}
}
Остальная часть кода выполняется нормально. Я протестировал функцию AddToGrid и показанную функцию без TempObj или заменил TempObj на другую TempLabel, она также работает нормально.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -statement
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»