这个问题是我的一个好奇心,所以我不是在寻找答案,只是一个解释。
我一直想知道为什么在铸造时必须创建一个新变量。
当我正在转换为已知类型时,我会认为编译器可以在这种事情上发挥神奇的作用。
所以这样的代码可以写得更短。
DataTable dataTable = RetrieveDataTableFrom(whereEver);
foreach (DataRow row in dataTable.rows)
{
if (row.ItemArray[0].GetType() == typeof(myTypeA))
{
MyTypeA myTypeA = (myTypeA)row.ItemArray[0];
myTypeA.myCustomProperty = "dem works";
}
}
像这样,我只是更直接地编辑属性。
foreach (DataRow row in dataTable.rows)
{
if (row.ItemArray[0].GetType() == typeof(myTypeA))
{
(myTypeA)row.ItemArray[0].myCustomProperty = "dem breaks";
}
}
编辑:哦,我的理解是错误的!哎呀,我认为这没有意义......哈。多一点,您是否认为任何一种方法(假设使用正确数量的括号)比另一种更清晰/可读?