Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





LinQ y expresiones lambda

Iniciado por blau, 07 de Abril de 2010, 06:47:07 PM

« anterior - próximo »

blau

¿Por que c# no me permite esto?

 
Código (csharp) [Seleccionar]
List<State> _States = new List<State>();

public T Peek<T>() where T : State
{
      return _States.First(s => (typeof(s) == typeof(T)));
}


Error   1   The type or namespace name 's' could not be found (are you missing a using directive or an assembly reference?)   C:\Documents and Settings\blau\Escritorio\defense\Gameplay\States\StatesManager.cs   65   47   Gameplay

State es una clase base de la que heredan los diversos estados del juego.

Esto si me lo permite:  
Código (csharp) [Seleccionar]
return _States.OfType<T>().First();


Vicente

#1
El operador typeof espera el nombre de una clase, no un objeto. Para conseguir el tipo de un objeto se usa GetType() (haz s.GetType en vez de typeof(s) y listo :) ).


blau

Uups,  ^_^'

No me habia dado cuenta.

Gracias






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.