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

Jam*_*and 1 c# variables foreach types

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

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

    }
}
Run Code Online (Sandbox Code Playgroud)

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

'Namespace.Main' is a 'type' but is used like a 'variable'
Run Code Online (Sandbox Code Playgroud)

Ant*_*t P 5

Main是一个班级.你不能迭代一个类,你必须迭代一个对象.特别是(在这种情况下),您必须迭代一组Control对象.我想也许你想要:

foreach (Control pictureBox in Controls)
Run Code Online (Sandbox Code Playgroud)

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

foreach (Control pictureBox in myFormObject.Controls)
Run Code Online (Sandbox Code Playgroud)