Rya*_*wis 4 c# visual-studio-2008 visual-studio
我有一个ArrayList填充了一堆点,我想循环它们,所以我使用这个代码:
for (int i = 0; i < currentClicks.Count; i++)
{
if (i > 0) // Skip the first click
{
clickPos = currentClicks[i];
prevPos = currentClicks[i - 1];
}
}
Run Code Online (Sandbox Code Playgroud)
我在clickPos和prevPos线上得到这个错误:
Cannot implicitly convert type 'object' to 'System.Drawing.Point'.
An explicit conversion exists (are you missing a cast?)
Run Code Online (Sandbox Code Playgroud)
为什么是这样?我有clickPos并prevPos定义如下:
private System.Drawing.Point clickPos;
private System.Drawing.Point prevPos;
Run Code Online (Sandbox Code Playgroud)
当我注释掉clickPos和prevPos线并添加
MessageBox.Show(currentClicks[i].GetType().ToString());
Run Code Online (Sandbox Code Playgroud)
消息框说 System.Drawing.Point
你应该使用泛型List<Point>而不是ArrayList.
如果您坚持使用ArrayList,则需要Point在检索时将对象强制转换为a :
clickPos = (Point)currentClicks[i];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
319 次 |
| 最近记录: |