如何使用扩展为C#的泛型

时间:2015-10-06 19:02:38

标签: java c#

我是clusters = KMeans.train(tfidf_vectors, 2, maxIterations=10) def error(point): center = clusters.centers[clusters.predict(point)] return sqrt(sum([x**2 for x in (point - center)])) WSSSE = tfidf_vectors.map(lambda point: error(point)).reduce(lambda x, y: x + y) print("Within Set Sum of Squared Error = " + str(WSSSE)) clusters.save(sc, "myModelPath") sameModel = KMeansModel.load(sc, "myModelPath") 的新手,如何在C#中使用以下通用,我希望与C#中的Java语句相同,

C#
上面的

List<? extends MySuperClass> list= new ArrayList<MySubClass>(); 允许,我们可以在Java中实现相同的目标吗?

1 个答案:

答案 0 :(得分:4)

C#没有通配符。所以简单的答案是否定的,没有直接的等价物。

但是,我认为在Java中编写这行代码并不是很重要,因为你丢弃了类型信息。你也可以写

List<MySubClass> list = new ArrayList<MySubClass>();

在Java中使用通配符的主要原因是允许方法参数尽可能通用,如下所示:

static void foo(List<? extends MySuperClass> list)

您可以使用C#这样做:

static void foo<T>(IList<T> list) where T : MySuperClass