C# Method Attribute cannot contain a Lambda Expression?(C# 方法属性不能包含 Lambda 表达式?)
问题描述
IntelliSense 告诉我表达式不能包含匿名方法或 lambda 表达式."真的吗?我不知道这种强加的限制.这个对吗?我想我在这里寻找健全性检查......
IntelliSense is telling me "Expression cannot contain anonymous methods or lambda expressions." Really? I was not aware of this imposed limitation. Is this correct? I guess I'm looking for a sanity check here...
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()
{
}
}
推荐答案
是的,这是正确的.属性值仅限于以下类型的常量
Yes this is correct. Attribute values are limited to constants of the following types
- 简单类型(bool、byte、char、short、int、long、float 和 double)
- 字符串
- 系统类型
- 枚举
- object(object类型的属性参数的参数必须是上述类型之一的常量值.)
- 上述任何类型的一维数组
参考:http://msdn.microsoft.com/zh-cn/library/aa288454(VS.71).aspx
这篇关于C# 方法属性不能包含 Lambda 表达式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:C# 方法属性不能包含 Lambda 表达式?


基础教程推荐
- 如何动态获取文本框中datagridview列的总和 2022-01-01
- JSON.NET 中基于属性的类型解析 2022-01-01
- 将事件 TextChanged 分配给表单中的所有文本框 2022-01-01
- 首先创建代码,多对多,关联表中的附加字段 2022-01-01
- 经典 Asp 中的 ResolveUrl/Url.Content 等效项 2022-01-01
- 是否可以在 asp classic 和 asp.net 之间共享会话状态 2022-01-01
- 错误“此流不支持搜索操作"在 C# 中 2022-01-01
- 全局 ASAX - 获取服务器名称 2022-01-01
- 在 VS2010 中的 Post Build 事件中将 bin 文件复制到物 2022-01-01
- 从 VS 2017 .NET Core 项目的发布目录中排除文件 2022-01-01