在lua中,可以非常轻松地创建表并向其中添加函数。

如何在C#中做到这一点?我的第一个想法是使用委托列表,并用匿名函数填充该列表,但我无法正确使用语法。

public class PlanItem
{
    public string Name { get; set; }
    public List<BusinessRule> Rules;
}

public delegate bool BusinessRule(PlanItem item);

[Test]
public void TestIt()
{
    PlanItem item = new PlanItem();
    item.Rules.Add(
        BusinessRule(PlanItem item)
        {
            return !string.IsNullOrEmpty(item.Name);
        }
    );

   foreach(BusinessRule rule in item.Rules)
   {
     if(!rule(item))
         // write uh-oh
   }
}

最佳答案

这应该可以解决问题:

 item.Rules.Add((planItem) =>
 {
     return !string.IsNullOrEmpty(planItem.Name);
 });

09-06 12:02