переключаться между двумя случаями с помощью GOTO - PullRequest
0 голосов
/ 11 марта 2019

Я хочу переключиться между двумя случаями с помощью команды goto (когда выполняется случай 1, перейти к случаю 2, затем, когда выполняется случай 2, снова перейти к делу 1 и т. Д.), Но после случая 2 случай 1 не работает , Вот мой код:

case 1:
    //Create a new picker
    FileOpenPicker filePicker = new FileOpenPicker();

    //Add filetype filters.  In this case wmv and mp4.
    filePicker.FileTypeFilter.Add(".wmv");
    filePicker.FileTypeFilter.Add(".mp4");

    filePicker.SuggestedStartLocation = PickerLocationId.VideosLibrary;

    StorageFile file = await filePicker.PickSingleFileAsync();

    if (file != null)
    {
        mediaPlayerElement.Source = MediaSource.CreateFromStorageFile(file);
        mediaPlayerElement.MediaPlayer.Play();
    }

    openButton.Content = "Close";
    break;
case 2:
    mediaPlayerElement.Source = null;
    openButton.Content = "Open";
    goto case 1;

1 Ответ

0 голосов
/ 11 марта 2019

Вы всегда должны избегать использования gotos, иначе ваш код станет нечитаемым. Используйте для этого функции!

        switch (i)
        {
            case 1:
                closeToOpen();
                openToClose();

                break;
            case 2:
                openToClose();
                closeToOpen();
        default:
                break;
        }
    }

    void openToClose()
    {
        mediaPlayerElement.Source = null;
        openButton.Content = "Open";
    }

    void closeToOpen()
    {
        FileOpenPicker filePicker = new FileOpenPicker();

        //Add filetype filters.  In this case wmv and mp4.
        filePicker.FileTypeFilter.Add(".wmv");
        filePicker.FileTypeFilter.Add(".mp4");

        filePicker.SuggestedStartLocation = PickerLocationId.VideosLibrary;

        StorageFile file = await filePicker.PickSingleFileAsync();

        if (file != null)
        {
            mediaPlayerElement.Source = MediaSource.CreateFromStorageFile(file);
            mediaPlayerElement.MediaPlayer.Play();
        }

        openButton.Content = "Close";
    }

Не уверен, что это именно то, чего вы пытались достичь, но если не используете это как руководство!

...