在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);
});