Почему я получаю это сообщение: Невозможно преобразовать тип 'bool' в 'string' - PullRequest
1 голос
/ 15 июля 2009

Ниже приведен фрагмент кода, который я использую.

using System;
using System.Collections.Generic;
using System.Text;

namespace businessTMS
{
    public class SignIn
    {
        public string authenticate(String UserName, String password)
        {  
            dataTMS.SignIn data = new dataTMS.SignIn();
          string authenticate=(string)data.authenticate(UserName, password);
            return authenticate;
        }

    }
}

Ответы [ 3 ]

18 голосов
/ 15 июля 2009

Ваша ошибка происходит из-за этой строки:

string authenticate = (string)data.authenticate(UserName, password);

Вы устанавливаете аутентификацию равной вычислению истина / ложь, которое возвращает логическое значение. Попробуйте вместо этого.

string authenticate = data.authenticate(UserName, password).ToString();

Вы также можете изменить код, чтобы он по-прежнему возвращал строку, выполнив это:

bool authenticate = data.authenticate(UserName, password);
return authenticate.ToString();

ПРЕДПОЧТИТЕЛЬНЫЙ ВАРИАНТ:
Кроме того, я не уверен, почему вы возвращаете строковое представление true / false (bool) ... Если бы это была моя функция, я бы, вероятно, вернул это :

return data.authenticate(UserName, password);

Я бы настоятельно рекомендовал вам просто вернуть логическое значение в области ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ. Нет очевидных причин сохранять это в строковом формате.

2 голосов
/ 15 июля 2009

Используйте метод Boolean.ToString (документацию можно найти здесь ) примерно так:

using System;
using System.Collections.Generic;
using System.Text;

namespace businessTMS
{
    public class SignIn
    {
        public string authenticate(String UserName, String password)
        {  
            dataTMS.SignIn data = new dataTMS.SignIn();

            return data.authenticate(UserName, password).ToString();
        }

    }
}
0 голосов
/ 15 мая 2019

Я получил сообщение об ошибке «Невозможно преобразовать тип« bool »в« строку »», но строка в моем коде, где появилась ошибка, не была причиной сообщения.

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

...