实现特定委托类型接口中T参数约束的方法



我知道从c# 7.3开始,我们可以使用T: Delegate约束。我们能不能更具体一点-约束到我们的接口所依赖的特定方法签名(我知道代码契约等参数,但如果我们必须的话)类似的东西?

public delegate int SummingDelegate(int a, int b);
public interface IRelyOn<T> where T : SummingDelegate
{
int ConsumingSum(T summingMethod);
}

编辑:我的场景是强制某种类型的必要方法签名,以供可以模拟和测试的接口中的类使用。

泛型在这种情况下是不必要的,因为委托已经表示了具有匹配参数列表和返回类型的任何方法。直接使用委托:

public delegate int SummingDelegate(int a, int b);
public interface IRelyOn
{
int ConsumingSum(SummingDelegate summingMethod);
}

相关内容

  • 没有找到相关文章

最新更新