C#VS错误:类不包含构造函数(即使在类本身中添加一个)

时间:2012-07-24 09:40:46

标签: c# constructor

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

  

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

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

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

public SettingsComponentAttributes(SettingsComponentAttributes obj)
{
}

4 个答案:

答案 0 :(得分:7)

你的类没有声明任何构造函数,因此它等同于拥有一个无参数构造函数:

public SettingsComponentAttributes()
{
}

您尝试将参数(this)传递给构造函数 - 这不会起作用。您需要更改构造函数调用,或声明适当的构造函数。

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

  • 您尝试使用带有1个参数的构造函数
  • 不存在此类构造函数

答案 1 :(得分:4)

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

像这样的东西

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

    public SettingsComponentAttributes(SettingsComponentAttributes obj)
    {
       // Do your fancy work here
    }
}

答案 2 :(得分:1)

您需要创建一个带有1个参数ep>的类构造函数

    public SettingsComponentAttributes(SettingsComponentAttributes other)
    {
        // Initialise.
    }

答案 3 :(得分:0)

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

public SettingsComponentAttributes(int i)