Main是'type'但是像'变量'一样使用

时间:2014-04-14 08:51:52

标签: c# variables types foreach

基本上,我尝试使用从StackOverflow中找到的代码,该代码与我想要在我的pictureBox之间进行的一些colision检测相关联。但是,我遇到一个错误,指出表单名称是一个类型,但像变量一样使用。代码在这里:

foreach (Control PictureBox in Main)
{
    if (Player.Bounds.IntersectsWith(PictureBox.Bounds))
    {

    }
}

在foreach循环中。它强调了Main这个词,说明了这些确切的词:

'Namespace.Main' is a 'type' but is used like a 'variable'

1 个答案:

答案 0 :(得分:5)

Main。你不能迭代一个类,你必须迭代一个对象。具体而言(在本例中),您必须迭代Control个对象的集合。我想也许你想要:

foreach (Control pictureBox in Controls)

在这里,我正在迭代当前对象的Controls属性。这假设您是在Main的实例中执行此操作。否则,您将需要对Form对象的引用并使用:

foreach (Control pictureBox in myFormObject.Controls)