将 <string> 传递给字符串会导致错误

问题描述 投票:0回答:1

我有这个功能

    static async Task<string> ChatGPT(string token, string model, string message)
    {
        ChatGPTClient chatGPTClient = new ChatGPTClient();
        string result = await chatGPTClient.GetChatGPTResponse(token, model, message);
        return result;
    }

result 是函数内部的一个字符串,在调用时传递

当我调试时,我可以读取

result = "Hello! How can I assist you today?"

的值

从此事件中调用它

    private void btnCall_Click(object sender, EventArgs e)
    {
        string token = txtToken.Text;
        string model = cmbModel.Text;
        string message = txtPrompt.Text;

        txtDisplay.text = ChatGPT(token, model, message).ToString();
    }

但是 txtDisplay 的值是

System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1+AsyncStateMachineBox`1[System.String,APIApp.frmChatGPT+<ChatGPT>d__1]

我做错了什么以及如何解决它?

c# async-await
1个回答
0
投票

ChatGPT
方法的结果类型是
Task<string>
。如果您想分配任务的字符串结果,那么您必须
await
任务。

private async void btnCall_Click(object sender, EventArgs e)
{
    string token = txtToken.Text;
    string model = cmbModel.Text;
    string message = txtPrompt.Text;

    txtDisplay.text = await ChatGPT(token, model, message);
}
© www.soinside.com 2019 - 2024. All rights reserved.