Compartir a través de


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#)

Referencia

var (Referencia de C#)