這個問題是我的好奇心,所以我不想在這個問題上尋找一個解釋。鑄造對象類型而不創建新變量
我一直想知道爲什麼在鑄造時必須創建一個新變量。
這是我認爲編譯器可以工作的那種東西,因爲我正在轉換成已知類型。
因此,這樣的代碼可以寫得更短。
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";
}
}
編輯:哦,所以我的理解錯誤!哎呀,我認爲這沒有道理......哈。 有一點額外的,你會考慮兩種方法(假設使用正確數量的括號)比其他方法更清晰/可讀嗎?
總是有趣的替代方案LINQ +1 – Amicable