tutorial - linq with lambda expression in c#
El atributo del método C#no puede contener una expresión lambda? (1)
IntelliSense me dice "Expression no puede contener métodos anónimos o expresiones lambda". De Verdad? No estaba al tanto de esta limitación impuesta. ¿Es esto correcto? Supongo que estoy buscando un control de cordura aquí ...
public delegate bool Bar(string s);
[AttributeUsage(AttributeTargets.All)]
public class Foo : Attribute
{
public readonly Bar bar;
public Foo(Bar bar)
{
this.bar = bar;
}
}
public class Usage
{
[Foo(b => b == "Hello World!")] // IntelliSense Complains here
public Usage()
{
}
}
Si eso es correcto. Los valores de los atributos están limitados a las constantes de los siguientes tipos
- Tipos simples (bool, byte, char, corto, int, largo, flotante y doble)
- cuerda
- Tipo de sistema
- enums
- objeto (El argumento para un parámetro de atributo de tipo objeto debe ser un valor constante de uno de los tipos anteriores).
- Arrays unidimensionales de cualquiera de los tipos anteriores
Referencia: http://msdn.microsoft.com/en-us/library/aa288454(VS.71).aspx