在代码审查I posted a piece of code for statistics进行评估,并提出了一个有趣的问题:是否可以使该类更通用?可以吗没有INumeric界面,所以我正在寻找选项。
我在这里给出代码的简化版本:
public class Statistics<TNumeric>
{
public TNumeric Sum { get; private set; }
public long Total { get; private set; }
public void Add(TNumeric number)
{
Total++;
Sum += number;
}
}
这是非常简化的版本,专注于我要改进的部分。 TNumeric是通用类型,可以是double,int或其他类型。它几乎可以工作,除非它不知道这种类型的plus运算符。因此Sum += number;
无法编译。
主要问题是我想保持整数统计与浮点数统计分开。
那么,如何在通用统计类中使用它?还是在C#中仍然不可能?