gpt4 book ai didi

C# 方法属性不能包含 Lambda 表达式?

转载 作者:IT王子 更新时间:2023-10-29 04:27:27 26 4
gpt4 key购买 nike

IntelliSense 告诉我“表达式不能包含匿名方法或 lambda 表达式。”真的吗?我不知道这个强加的限制。这个对吗?我想我正在寻找健全性检查...


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()
{
}
}

最佳答案

是的,这是正确的。属性值仅限于以下类型的常量

  • 简单类型(bool、byte、char、short、int、long、float 和 double)
  • 字符串
  • 系统类型
  • 枚举
  • 对象(对象类型的属性参数的参数必须是上述类型之一的常量值。)
  • 任何上述类型的一维数组

引用:http://msdn.microsoft.com/en-us/library/aa288454(VS.71).aspx

关于C# 方法属性不能包含 Lambda 表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4411122/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com