C# 我无法理解这个代码的确切含义

C# 我无法理解这个代码的确切含义,c#,C#,这些代码行是什么意思 foreach (DataRow row in distinctFlatDataTable.Rows) { row["Diff_Min"] = (Convert.ToDecimal(row["Mins"] == DBNull.Value ? 0.0 : row["Mins"]) - Convert.ToDecimal(row["MIN"] == DBNull.Value ? 0.0 : row["MIN"])); row["Diff_Amt"] = (Con

这些代码行是什么意思

foreach (DataRow row in distinctFlatDataTable.Rows)
{
    row["Diff_Min"] = (Convert.ToDecimal(row["Mins"] == DBNull.Value ? 0.0 : row["Mins"]) - Convert.ToDecimal(row["MIN"] == DBNull.Value ? 0.0 : row["MIN"]));
    row["Diff_Amt"] = (Convert.ToDecimal(row["Amount"] == DBNull.Value ? 0.0 : row["Amount"]) - Convert.ToDecimal(row["AMT"] == DBNull.Value ? 0.0 : row["AMT"]));
    row["Diff_Pft"] = (Convert.ToDecimal(row["Profit"] == DBNull.Value ? 0.0 : row["Profit"]) - Convert.ToDecimal(row["PFT"] == DBNull.Value ? 0.0 : row["PFT"]));
}

从数据行集合中,为每个实例选择一个数据行
行[“分钟”]
表示该行中的
分钟
列,该列被转换为
十进制
。然后与
DbNull.Value
进行比较,进行空值检查。如果值为
null
则取0.0,否则取表达式
Convert.ToDecimal(行[“分钟])
中的原始值。 对Convert.ToDecimal(第[“MIN”行]执行相同的逻辑&将两者的结果相减并存储到第[“Diff_MIN”行]

语句2和语句3的逻辑相同


希望这能消除您的疑虑。

对于数据表中的每一行,它计算两个字段之间的差值,将结果转换为十进制值,并将其存储在同一行的另一个字段中。 在第1行中,Min字段从field Mins的内容中减去,结果存储在field Diff_Min中

每行代码都执行相同的操作,但源字段和目标字段不同

第?和第:部分:

row["Mins"] == DBNull.Value ? 0.0 : row["Mins"]

正在测试源字段是否包含空值(DBNull.Value),并在这些情况下替换为0.0。这样,当其中一个源字段恰好包含空值时,计算不会失败。

…非常感谢…我现在清楚了…谢谢兄弟…你的答案正是我所要的。。。