Как выводить строковые значения с помощью функции Task <bool>в C # - PullRequest
0 голосов
/ 14 февраля 2019

Как можно получить строковые значения с помощью функции Task в C # Мне нужно исправить этот код, чтобы вернуть Task без строковых значений

public Task<bool> DelUserTemp(string UserID, int FingerIndex ,out string result)
{
    return Task.Run(() =>
    {
        if (true)
        {
            result = "done";
            return true;
        }
        else
        {
            result = "error";
            return false;
        }
    });
}

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Еще один пример - создать class и вернуть его:

public class MyResult
{
    public bool Succeeded {get;}
    public string ErrorMessage {get;}

    public MyResult(bool succeeded, string errorMessage)
    {
        Succeeded = succeeded;
        ErrorMessage = errorMessage;
    }
}

public Task<MyResult> DelUserTemp(string UserID, int FingerIndex ,out string result)
{
    return Task.Run(() =>
    {
        if (true)
        {
            return new MyResult(true, "done");
        }
        else
        {
            return new MyResult(false, "error");
        }
    });
}
0 голосов
/ 14 февраля 2019

Альтернативой использованию ref / out будет возвращение C # 7.0 кортежей вместо.

public Task<(bool Worked, string Result)> DelUserTemp(string UserID, int FingerIndex)
{
    return Task.Run(() =>
    {
        if (true)
        {
            return (true, "done");
        }
        else
        {
            return (false, "error");
        }
    });
}
...