【问题标题】:Main is a 'type' but is used like a 'variable'Main 是“类型”,但用作“变量”
【发布时间】:2014-05-28 03:52:41
【问题描述】:

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

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

    }
}

在 foreach 循环中。它在 Main 这个词下划线,说明这些确切的词:

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

【问题讨论】:

  • 你是如何在你的程序中创建Main的?
  • 基本上,主要是形式。很抱歉没有说明这一点,这是表单名称。
  • 是 C# 吗?请标记它
  • 抱歉,之前被告知不要这样做,我相信我的帖子已被编辑。立即标记。
  • 是的,错误告诉您应该在 foeach 循环中放置一个变量。你会用你的 Player.Bounds 测试每个 PictureBox 吗?或者,也许您可​​以向我们展示该帖子的原始链接。

标签: c# variables types foreach


【解决方案1】:

Main 是一个。你不能迭代一个类,你必须迭代一个对象。具体来说(在这种情况下),您必须遍历 Control 对象的集合。我想也许你想要:

foreach (Control pictureBox in Controls)

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

foreach (Control pictureBox in myFormObject.Controls)

【讨论】:

  • "非静态字段、方法或属性'System.Windows.Forms.Control.Controls.get'需要对象引用
  • 抱歉 - 刚刚更新了我的答案。我假设您是从 in 表单中执行此操作的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-17
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
相关资源
最近更新 更多