我想从Java public static class MyExtensions
{
public static IQueryable<T> MyContains<T, TFilter>(
this IQueryable<T> list,
TFilter x,
Expression<Func<T, bool>> filterFunc)
{
if (x == null)
{
return list;
}
return list.Where(filterFunc);
}
}
创建一个列表。但是当我尝试将一个函数添加到var emailAddresses = _yRepository
.Find()
.MyContains(x, y => x.ys.Contains(y))
.ToArray();
列表时,它会说;
Function
我不知道哪种方法是静态的。有什么想法吗?
我的主要课程:
functions
我的产品类:
Non-static variable cannot be referenced from a static context
答案 0 :(得分:3)
Product::getInfo
可以分配给Function<Product,Info>
(因为它是非静态方法,所以它可以看作是一个带Product
实例并返回{{1}的函数实例)。从
Info
的声明
functions
到
List<Function> functions = new ArrayList<>();
编辑:我测试了你的代码,我得到了一个不同的编译错误:
Product类型未定义此处适用的getInfo(Object)。
您获得的编译错误具有误导性。 一旦我做出建议的更改,错误就会消失。