Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El tipo de valor devuelto de un método asincrónico debe ser void, Task, Task<T>, un tipo similar a una tarea (un tipo similar a una tarea es uno que se adhiere al patrón descrito aquí, requerido por la especificación de C#), IAsyncEnumerable<T> o IAsyncEnumerator<T>.
Ejemplo
El ejemplo siguiente genera la advertencia CS1983:
// CS1983.cs (4,62)
using System.Collections.Generic;
class C
{
static async IEnumerable<int> M()
{
yield return await Task.FromResult(1);
}
}
Dado que IEnumerable.GetEnumerator
devuelve un IEnumerator<T>
cuyo método MoveNext
no devuelve un valor de Task<T>
, no es compatible con un método async
.
Para corregir este error
Use una interfaz que dé como resultado la invocación del método que devuelve un tipo de Task<T>
, por ejemplo, IAsyncEnumerable<T>
:
using System.Collections.Generic;
class C
{
static async IAsyncEnumerable<int> M()
{
yield return await Task.FromResult(1);
}
}