B. *_*non 3 c# int casting winforms
为什么这样做:
ComboBox cb = sender as ComboBox;
int validSelection = Convert.ToInt32(cb.Tag);
if (cb.SelectedIndex != validSelection) {
cb.SelectedIndex = validSelection;
}
Run Code Online (Sandbox Code Playgroud)
...但是这个:
ComboBox cb = sender as ComboBox;
int validSelection = (int)cb.Tag; // <-- fails
if (cb.SelectedIndex != validSelection) {
cb.SelectedIndex = validSelection;
}
Run Code Online (Sandbox Code Playgroud)
...错误输出"对象未设置为对象的引用"?
Fré*_*idi 13
那是因为转换与演员不是一回事.
cb.Tag可能是一个string,而不是一个int,一个不能直接转换为另一个.Convert.ToInt32()实际上解析string并int使用转换后的值创建一个新的.
强制转换仅尝试将类型的实例解释为另一种类型的实例.
| 归档时间: |
|
| 查看次数: |
383 次 |
| 最近记录: |