trapemiyaの日記

hatenablogが新しくなったんで新規一転また2019年1月からちょこちょこ書いてます。C#中心のプログラミングに関するお話です。

【C#】エラー CS7036 Hoge.Fuga(string 引数)' の必要な仮パラメーター '引数' に対応する特定の引数がありません。

以下のクラスを作成して、

public class Fuga
{
    public Fuga(string param1)
    {
        this.param1 = param1;
    }

    public string param1 { get; set; }
}

以下のように利用しようとすると、

var fuga =  new Fuga {param1 = "あああ"};

エラー CS7036 Hoge.Fuga(string param1)' の必要な仮パラメーター 'param1' に対応する特定の引数がありません。

といったエラーが出る。

これは、引数付きのコンストラクタを定義すると、デフォルトコンストラクタ、つまり引数無しのコンストラクタが暗黙的に定義されなくなるからである。
よって、解決策としては、明にデフォルトコンストラクタを定義してあげましょう。

public class Fuga
{
    //デフォルトコンストラクタ
    public Fuga()
    {
    }

    public Fuga(string param1)
    {
        this.param1 = param1;
    }

    public string param1 { get; set; }
}