Error del compilador CS1942
Actualización: noviembre 2007
Mensaje de error
El tipo de la expresión en la cláusula 'cláusula' es incorrecto. No se pudo inferir el tipo en la llamada a 'método'.
The type of the expression in the 'clause' clause is incorrect. Type inference failed in the call to 'method'.
Este error se suele generar cuando a la variable de rango se le ha asignado un tipo explícito incorrecto.
Para corregir este error
- Si la variable de rango tiene un tipo explícito, asegúrese de que el tipo sea igual que el de los elementos de la colección que recorre en interacción o se pueda convertir implícitamente a partir de éste. Si la variable de rango va precedida de la palabra clave var, quite var.
Ejemplo
El código siguiente genera el error CS1942:
// cs1942.cs
class Program
{
static void Main(string[] args)
{
var x = from var i in Enumerable.Range(1, 100) // CS1949
select i; //CS1942
}
}
CS1942 se relaciona con CS1949 porque el uso de var con una variable de rango provoca que la operación Cast<T> subyacente no se realice correctamente porque var no es un tipo.
Vea también
Conceptos
Expresiones de consultas con LINQ (Guía de programación de C#)