Как исправить ошибку Оператор '&&' не может быть применен к операндам типа 'bool?'и "бул" - PullRequest
0 голосов
/ 04 января 2019

Это мой код c #. Я получаю ошибку в этой конкретной строке, так как Оператор '&&' не может быть применен к операндам типа 'bool?'и 'bool'

if (openFileDialog.ShowDialog() && viewModel.OpenFileCommand.CanExecute(openFileDialog.FileName))
                {
                    viewModel.OpenFileCommand.Execute(openFileDialog.FileName);
                }

Пожалуйста, помогите мне исправить эту ошибку.

Ответы [ 2 ]

0 голосов
/ 04 января 2019
if (openFileDialog.ShowDialog() ?? false && viewModel.OpenFileCommand.CanExecute(openFileDialog.FileName))
0 голосов
/ 04 января 2019

Метод Window.ShowDialog

Возвращает Nullable<Boolean> Обнуляемое значение типа Boolean, которое указывает, было ли действие принято (true) или отменено (false).Возвращаемое значение - это значение свойства DialogResult до закрытия окна.

Проблема заключается в том, что ShowDialog is nullable ...

Однако вы можете исправить это, просто используя более подробный == true, и компилятор поймет, что вы хотите явно знать его истину, а не нуль или ложь.Не спрашивайте меня, почему ему не нравится сокращенная версия (идентификатор должен пролистать спецификации)

В любом случае, вот ваше решение

if (openFileDialog.ShowDialog() == true && viewModel....)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...