为什么 0 不会拆箱为整数
本文关键字:整数 为什么 | 更新日期: 2023-09-27 18:32:08
我在此代码中收到"无效强制转换"异常,该异常位于网格的鼠标向下:
// Get the index of the row and column the mouse is over.
rowIndexFromMouseDown = grdSale.HitTest(e.X, e.Y).RowIndex;
colIndexFromMouseDown = grdSale.HitTest(e.X, e.Y).ColumnIndex;
// Drag only if we're not over header, are over count, and there are some tickets
if ((rowIndexFromMouseDown != -1)
&& (colIndexFromMouseDown == 2)
&& ((int)grdSale.Rows[rowIndexFromMouseDown].Cells["TypeCount"].Value > 0))
从即时窗口:
?rowIndexFromMouseDown
2
?colIndexFromMouseDown
2
?grdSale.Rows[rowIndexFromMouseDown].Cells["TypeCount"].Value
0
?(int)grdSale.Rows[rowIndexFromMouseDown].Cells["TypeCount"].Value
Cannot unbox '(grdSale.Rows[rowIndexFromMouseDown].Cells["TypeCount"]).Value' as a 'int'
网格单元格不显示任何内容,但网格是从 XML 文件填充的,该文件的架构将值定义为值为零的整数。正如人们所看到的,这就是细胞的价值。那么为什么不能将其拆箱为整数以便我可以对其进行评估呢?
该值是除 int
之外的某种类型,例如 double
或string
.即使它是隐式可转换类型,例如 short
,除非其类型为int
,否则不能直接拆箱int
。可以使用Convert.ToInt32(value)
转换值。