0

在 VS C# Express 上,运行以下代码时出现此错误:

“myComponent.SettingsComponentAttributes”不包含带有 1 个参数的构造函数。

我尝试在类本身中添加一个构造函数,但同样的消息应用于新的构造函数:

public override void CreateAttributes()
{
    m_attributes = new SettingsComponentAttributes(this);
}

public SettingsComponentAttributes(SettingsComponentAttributes obj)
{
}
4

4 回答 4

7

您的类没有声明任何构造函数,因此它相当于拥有一个无参数构造函数:

public SettingsComponentAttributes()
{
}

您正在尝试将参数 ( this) 传递给构造函数——这是行不通的。您需要更改构造函数调用,或声明适当的构造函数。

应该仔细查看错误消息并找出您需要在 Stack Overflow 上提问的原因。哪一点信息对你来说不是很清楚?修改您的 C# 知识的这方面。理解错误消息是成为一名优秀开发人员的一个非常重要的部分,这一点相当清楚:

  • 您正在尝试使用带有 1 个参数的构造函数
  • 不存在这样的构造函数
于 2012-07-24T09:44:00.997 回答
4

默认构造函数是无参数的,所以如果你想创建一个接受一个参数的构造函数,你必须自己创建它

像这样的东西

public class SettingsComponentAttributes : GH_ComponentAttributes
{
    public override void CreateAttributes()
    {
      m_attributes = new SettingsComponentAttributes(this);
    }

    public SettingsComponentAttributes(SettingsComponentAttributes obj)
    {
       // Do your fancy work here
    }
}
于 2012-07-24T09:43:47.747 回答
1

您需要创建一个接受 1 个参数的类构造函数,例如:

    public SettingsComponentAttributes(SettingsComponentAttributes other)
    {
        // Initialise.
    }
于 2012-07-24T09:43:55.490 回答
0

你没有一个带 1 个参数的构造函数

public SettingsComponentAttributes(int i)
于 2012-07-31T10:30:09.553 回答