【发布时间】:2016-05-05 23:01:18
【问题描述】:
我想得到val 字段的总和。
// member method
public T sum()
{
sum = default(T);
int i = 0;
while (i < size)
sum += val[i++];
}
private int size = 0;
private int usedSize = 0;
private T[] val = null;
【问题讨论】:
-
是否可以添加更多信息
-
尝试对具有泛型类型的值进行数学运算效果不佳,有一些变通方法,但它们都有不同程度的坏处。你在用这个做什么?也许可以避免?
-
我想得到列表的总和,我刚从c++切换到c#
-
你不能那样做;编译器不知道可以将 T 加在一起。见stackoverflow.com/questions/8122611/…
-
我认为您可以使用 Linq 做到这一点,而无需实现任何功能。 msdn.microsoft.com/en-us/library/… 。虽然看起来你需要传递一个参数,但你不需要,因为它是一个扩展方法(注意参数上的 this 字)。所以不要写
Sum(Collection),而是写Collection.Sum()。