gpt4 book ai didi

c# - 有没有办法在异步方法中使用 out 参数?如果没有,谁能建议我如何从异步方法返回 OUT 参数?

转载 作者:太空宇宙 更新时间:2023-11-03 17:40:20 32 4
gpt4 key购买 nike

我正在使用以下方法:

public async Task<SaveStatus> Save(Foo foo,out int param)
{
.......
MySqlParameter prmparamID = new MySqlParameter("pParamID", MySqlDbType.Int32);
prmparamID .Direction = ParameterDirection.Output;
sqlCommand.Parameters.Add(prmparamID);
try
{
await sqlConnection.OpenAsync();
await sqlCommand.ExecuteNonQueryAsync();

status = (SaveStatus)Convert.ToInt32(prmReturnValue.Value);

if (status == SaveStatus.Success)
{
if (Common.IsDBValueNotNullOrEmpty(prmParamID))
{
param= Convert.ToInt32(prmParamID.Value);
}
}
}

return status;
}

我想返回状态和整数参数。谁能帮我解决这个问题?

最佳答案

async 方法中不能有 out 参数。以下是有关原因的更多信息:Why async methods cannot have ref or out parameters?

如果你想返回多个返回值,你可能应该有一个类来保存这些值并返回它。

如果你不想创建一个新类,你可以使用Tuple:

public async Task<Tuple<SaveStatus, int>> Save(Foo foo)
{
SaveStatus status;
int param;

// ...

return Tuple.Create(status, param);
}

关于c# - 有没有办法在异步方法中使用 out 参数?如果没有,谁能建议我如何从异步方法返回 OUT 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28569529/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com