如果对象实现了这个接口,如何从接口调用方法?

How to call method from interface, if object implement this interface?

我有一组元素

 readonly Deposit[] deposits;

此集合中的一些元素是实现接口

interface IProlongable
{
    public bool CanToProlong();
}

我需要计算接口

中的方法返回的 true 个结果的数量
public int CountPossibleToProlongDeposit()
    {
        int count = default;
        foreach (var deposit in deposits)
        {
            if (deposit is IProlongable)
            {
                // Here i need to check if deposit.CanToProlog() is true and increment counter.
            }
        }

        return count;
    }
if (deposit is IProlongable p && p.CanToProlog())
{
    count++;
}

pattern matching(使用 is)时,您可以将结果转换为变量(此处为 p)。

p 属于 IProlongable 类型,因此您可以访问方法 CanToProlog().

您还可以使用 ++ 运算符将 count 递增 1。