Не могу найти переменную для кнопки внутри if / else - PullRequest
0 голосов
/ 08 июня 2018

Я хочу иметь другое поле для iOS и Android, поэтому я попытался сделать if / else, но MyButton не может быть найден, когда кнопка находится внутри if / else, как это:

if (Device.RuntimePlatform == Device.iOS)
        {
            var MyButton = new Button
            {
                Margin = new Thickness(0, -15, 0, 0)                    
            };

        }
        else
        {
            var MyButton = new Button
            {
                Margin = new Thickness(-10, -15, 0, 0)                   
            };

        }           

        var MyStackLayout = new StackLayout
        {
            Children = { MyButton }               
        };

Имя MyButton не существует в текущем контексте.Есть ли обходной путь или другой метод для этого?

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

Как уже упоминалось несколько раз, проблема в том, что MyButton живет в неправильном объеме.Что такое область действия?

Область действия переменной определяет ее видимость для остальной части программы.В примерах из учебника по основам C # переменные были определены внутри методов.При создании таким образом область действия переменной - это весь метод после объявления.Это означает, что переменная доступна для использования в методе, но когда управление переходит к другому методу, переменная недоступна.

Подробнее об этом можно прочитать здесь .

0 голосов
/ 08 июня 2018

измените свой код, как показано ниже:

    Button MyNewButton;
    if (Device.RuntimePlatform == Device.iOS)
    {
        MyNewButton= new Button
        {
            Margin = new Thickness(0, -15, 0, 0)                    
        };

    }
    else
    {
        MyNewButton= new Button
        {
            Margin = new Thickness(-10, -15, 0, 0)                   
        };

    }           

    var MyStackLayout = new StackLayout
    {
        Children = { MyNewButton}               
    };

Когда вы определяете переменную в теле if, она не может быть доступна из тела if.И если вы объявляете переменную с тем же именем (Mybutton), измените имя этой кнопки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...