从Func <t,bool =“”> </t,>获取布尔值

时间:2014-07-31 13:50:18

标签: c# fluent

我想从以下流畅函数中获取布尔值:

public IGridWithOptions<T> CursorPointerWhen(Func<T, bool> propertySpecifier)
{
   bool r = ????

   return this;
}

如何做到这一点?

2 个答案:

答案 0 :(得分:4)

您可以在班级中调用method,因为您有第一个T参数,示例:

T argument = /* get a instance of generic T argument */;
bool r = propertySpecifier(argument);

答案 1 :(得分:3)

您需要拥有 T值才能致电代表:

public IGridWithOptions<T> CursorPointerWhen(Func<T, bool> propertySpecifier)
{
    T input = GetInputFromSomewhere();
    bool r = propertySpecifier(input);    
    // ...
    return this;
}

没有T,这是不可能的。例如,考虑一下:

Func<string, bool> longString = x => x.Length > 100;

那是什么“价值”?它只在特定字符串的上下文中有意义。我们没有太多关于您在这里尝试做什么的信息,但是您需要从某个地方获取T的实例 - 或者更改您的方法参数。