C# lambda表达式的对象初始化器/构造函数自引用
我有一个简单的过滤器类,如下所示:C# lambda表达式的对象初始化器/构造函数自引用,c#,lambda,object-initializers,C#,Lambda,Object Initializers,我有一个简单的过滤器类,如下所示: public class DateFilter { public DateTime Value { get; set; } public Func<FilterObject, bool> Match { get; set; } } 是否可以将示例简化为一条语句?否,您不能在初始值设定项中为该变量引用变量。您只能在定义后引用它。这是不可能的,但我可以建议在func中添加一个参数,如果它符合您的要求 public class Dat
public class DateFilter
{
public DateTime Value { get; set; }
public Func<FilterObject, bool> Match { get; set; }
}
是否可以将示例简化为一条语句?否,您不能在初始值设定项中为该变量引用变量。您只能在定义后引用它。这是不可能的,但我可以建议在func中添加一个参数,如果它符合您的要求
public class DateFilter
{
public DateTime Value { get; set; }
public Func<FilterObject, DateTime, bool> Match { get; set; }
public DateFilter(Func<FilterObject, DateTime, bool> predicate)
{
Match = predicate;
}
}
var df = new DateFilter( (input, val) => val > input.Date));
假设将DateFilter的值作为匹配的第二个参数传递
public class DateFilter
{
public DateTime Value { get; set; }
public Func<FilterObject, DateTime, bool> Match { get; set; }
public DateFilter(Func<FilterObject, DateTime, bool> predicate)
{
Match = predicate;
}
}
var df = new DateFilter( (input, val) => val > input.Date));