Logo

¡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.
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.