當在DataGridViewRow
迭代的DataGridViewCell
個集合,我在測試特定小區的平等,像這樣:DataGridViewCell類型不匹配,當GetType()。名稱匹配?
var transactionLogId = dataGridView1.Rows[dataGridView1.SelectedCells[0].RowIndex].Cells[0].Value;
if (dgvRow.Cells[0].Value == transactionLogId) {
// Snip
}
而且我失望的是,它從未進入嵌套塊。儘管兩者相同(5177518
),並且dgvRow.Cells[0].Value.GetType().Name
和transactionLogId.GetType().Name
都是Int64
,但它不起作用,除非在等式檢查的兩端附加.ToString()
。
好奇,我在這裏失蹤。謝謝!
那麼爲什麼'dgvRow.Cells [0] .Value.GetType()。Name'和'transactionLogId.GetType()。Name'返回'Int64'? – The1nk
@ The1nk因爲'GetType'返回對象的運行時類型,也就是對象本身的實際類型,而不是你恰好指向它的引用類型。 – InBetween
Downvoter護理解釋爲什麼? – InBetween