title: Func and Cannot implicitly convert type
body: <p>So I have simple example of my code and I can't find idea how to rewrite it.
  Code:</p>
  
  <pre><code> class Program
    {
      static void Main(string[] args)
      {
        var cat = new Cat();
        cat
          .ToFeed(arg =&gt; LikeMilk(1), c =&gt; c.Inc())
          .ToFeed(arg =&gt; LikeMilk(2), c =&gt; c.Inc());
      }
  
      private static bool LikeMilk(int liters)
      {
        return liters &lt;1;
      }
    }
  
    public class Cat
    {
      private int Weith { get; set; }
  
      public void Inc()
      {
        Weith++;
      }
  
      public Cat ToFeed(Func&lt;int, bool&gt; predicate, Action&lt;Cat&gt; action)
      {
        if (predicate)  // Error: Cannot implicitly convert type 'System.Func&lt;int,bool&gt;' to 'bool' 
          action(this);
        return this;
      }
    }
  }
  </code></pre>
  
  <p>Of course I can change signature <code>ToFeed</code> to <code>ToFeed(bool predicate, Action&lt;Cat&gt; action),</code> but I don't want to do it.
  I understand that I have to add int parameter to call of predicate, but I have added it in <code>Main()</code></p>
  
  <p>How can I solve this problem?</p>
  
  <p>Thanks</p>