我使用下面的代码来计算datagridview
中列的总和
我担心静态数字" 3"哪个代表汇总列的索引,无论如何都要避免那个静态数,所以它总是计算相同列的总和?
private double TOTAL_INV()
{
double Total = 0;
for (int i = 0; i < DGV_INVOICE.Rows.Count; ++i)
{
double num = 0;
double.TryParse(DGV_INVOICE.Rows[i].Cells[3].Value.ToString(),out num);
Total+=num;
}
return Total;
}
答案 0 :(得分:2)
列号需要来自某个地方,无论是硬编码还是以其他方式配置。但是,你可以做的是让它更加明显。
例如,您可以创建一个总计任何列的方法,如下所示:
private double TotalColumn(int col) {
double Total = 0;
for (int i = 0; i < DGV_INVOICE.Rows.Count; ++i) {
double num = 0;
if (double.TryParse(DGV_INVOICE.Rows[i].Cells[col].Value.ToString(), out num)) {
Total+=num;
}
}
return Total;
}
现在调用者决定要传递给您的方法的列号。给它命名是一个好主意,而不是使用3
作为匿名常量:
const int invoiceColumn = 3;
...
var total = TotalColumn(invoiceColumn);