Member 13077938 Ответов: 1

Как исправить проблему "не может неявно скрытый тип" в C#


Я получаю сообщение об ошибке: "не удается неявно преобразовать тип' System.Речь.Синтез.Проворный' до 'буль'."

Мой код таков:

case "quit program"
           bool confirmationResult = speak.SpeakAsync("Are you sure");
           if (confirmationResult)
           {
                  speak.SpeakAsync("Okay");
                  this.close();


Весь код: https://codeshare.io/GbeLxj

Что я уже пробовал:

Я пробовал сделать код:
case "quit program"
           bool confirmationResult = Prompt speak.SpeakAsync("Are you sure");
           if (confirmationResult)
           {
                  speak.SpeakAsync("Okay");
                  this.close();

Я только что получил еще больше сообщений об ошибках.

CHill60

Ну, SpeakAsync не возвращает bool - он возвращает подсказку Оперативное Класса (Система.Речь.Синтез)[^]
Поэтому измените свою программу, чтобы получить правильное возвращаемое значение

[no name]

SpeakAsync() просто произносит текст. Это совершенно не связано с confirmationResult, который, очевидно, является каким-то пользовательским вводом. Вам нужно еще раз взглянуть на свой алгоритм.

1 Ответов

Рейтинг:
0

OriginalGriff

Посмотрите на определение Синтезатор речи.Метод SpeakAsync (String) (System.Речь.Синтез)[^] и он возвращает экземпляр класса Prompt - "объект, содержащий содержимое для разговора". Это не преобразуется в bool и никоим образом не получает ввода от пользователя, чтобы подтвердить, что он хочет сделать. Поэтому, когда вы пытаетесь присвоить возвращаемый объект вашему bool переменная, система вскидывает руки и говорит вам: "я не могу этого сделать, я не знаю, как относиться к подсказке как к логическому значению"

Я думаю, что вам нужно вернуться на один - два этапа назад и выяснить, как ваш пользователь должен взаимодействовать с вашим приложением-потому что вам нужно получить ответ там, а не предполагать, что акт задавания вопроса чудесным образом также получает ответ...