C# 泛型类型约束

标签 c# generics methods type-constraints

我以前从未使用过泛型,想知道如何将类型限制为 Double[]List<Double> (或者如果这甚至是正确的事情)。我需要计算许多数字的平均值,这些数字有时是事先已知的(即我可以创建一个精确大小的数组),但在其他时候,这些数字是在计算之前立即生成的(即我使用列表)。

我想要这个通用方法 Average(T arrayOrList)能够接受数组或列表而不是重载 Average()方法。

谢谢!

最佳答案

因为两个double[]List<double>实现 IEnumerable<double> ,我建议如下:

public double Average(IEnumerable<double> arrayOrList) {
    // use foreach to loop through arrayOrList and calculate the average
}

这是简单的子类型多态性,不需要泛型。

正如其他人已经提到的,如果您只想计算平均值,such a method already exists in the framework .

关于C# 泛型类型约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7028775/

相关文章:

java - 'Var' 必须初始化 Kotlin

c# - 属性的单元测试体

Java:无法理解非静态方法的类型删除

java - 如何判断泛型是否是 Java 中类的实例?

iOS 委托(delegate)方法在需要时没有被调用

java - 球体体积法不起作用

c# - 带有基于日期的子点的 WPF ItemsControl

c# - 删除字符串 C# 末尾的几个字符的正确方法是什么

c# - 如何将所有文档从一个 RavenDB 数据库移动到另一个?

ios - Monocross是否已准备好在iOS设备上进行专业使用?