Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como faço o retorno de uma tupla.

public async Task<Tuple<long, string>> VerificarBiometria() {

        var identify = await Task.Run(() =>
        {
            return new IdentifyRet
            {
                ret = idbio.CaptureAndIdentify(out long id, out int score, out int quality),
                id = id,
                score = score,
                quality = quality
            };
        });
        if (identify.ret < RetCode.SUCCESS)
        {
            if (identify.ret == RetCode.ERROR_IO_ON_HOST)
            {
                teste = false;
                // IdentifyLog.Text += "Dispositivo não encontrado.\r\n";
            }
            else
            {

                /* IdentifyLog.Text += "Erro na identificação: " + CIDBio.GetErrorMessage(identify.ret) +
                 " (qualidade " + identify.quality + ")\r\n";
                identifyTextBox.Text = "X";*/
            }
        }
        else
        {

            /*  IdentifyLog.Text += "Identificando...\r\n";
              IdentifyLog.Text += "ID " + identify.id + " Identificado (score (semelhança): " + identify.score +
                  ", qualidade: " + identify.quality + ")\r\n";
              identifyTextBox.Text = identify.id.ToString();*/
        }

        return null;

    }
1 resposta
solução!

Opa, tenho um projeto em que utilizei a System.ValueTuple.

Exemplo:

// Linha de código
(Object A, Object B) C = foo();

// função
private (Object ParamA, Object ParamB) foo()
{
    Object testeA = new Object();
    Object testeB = new Object();

    // seu código...

    return (ParamA: testeA, ParamB: testeB);
}

o tipo "Object" pode ser qualquer classe, inclusive as que você cria.

para você acessar o retorno:

var testeA = C.A.Propriedade;
var testeB = C.B.Propriedade;