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 次 |
最近记录: |