1

愚蠢的问题...

我正在使用 C# 泛型编写一些东西,感觉我发现了一个缺点,并且它可能会在 Scala 中使用更高种类的类型来克服,我只是模糊地熟悉。

这是代码:

public void Subscribe<P, T>(Action<T> callback) where P : ISubscriberProvider<T>

(提供者可能是一个不好的术语......我认为它可能真的是一个工厂)

所以问题是我必须在签名中同时提供 P 和 T。相反,我想要类似的东西:

public void Subscribe<P<T>>(Action<T> callback) where P : ISubscriberProvider<T>

这不是有效的语法。

这对 Scala 有效吗?

非常感谢!

4

1 回答 1

4

我不知道 C#,但它看起来像

def subscribe[T, P <: SubscriberProvider[T]](fun: T => Unit): Unit

但是该类型P并未在参数或返回类型中的任何地方使用,因此不确定您可以使用它。

于 2012-08-16T18:46:10.577 回答