0

VS C#Expressで、以下のコードを実行すると、このエラーが発生します。

'myComponent.SettingsComponentAttributes'には、1つの引数を取るコンストラクターが含まれていません。

クラス自体にコンストラクターを追加しようとしましたが、同じメッセージが新しいコンストラクターに適用されました。

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

public SettingsComponentAttributes(SettingsComponentAttributes obj)
{
}
4

4 に答える 4

7

クラスはコンストラクターを宣言しないため、パラメーターのないコンストラクターを1つ持つのと同じです。

public SettingsComponentAttributes()
{
}

コンストラクターに引数()を渡そうとしていますが、thisこれは機能しません。コンストラクター呼び出しを変更するか、適切なコンストラクターを宣言する必要があります。

また、エラーメッセージを注意深く見て、StackOverflowで質問する必要がある理由を理解する必要があります。メッセージのどの部分があなたにとって明確ではありませんでしたか?C#の知識のその側面を修正します。エラーメッセージを理解することは、優れた開発者であるための非常に重要な部分であり、これはかなり明確です。

  • 1つの引数を持つコンストラクターを使用しようとしています
  • そのようなコンストラクターは存在しません
于 2012-07-24T09:44:00.997 に答える
4

デフォルトのコンストラクターはパラメーターなしであるため、1つの引数を受け入れるコンストラクターを作成する場合は、自分で作成する必要があります。

このようなもの

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 に答える