1

私はこのようなクラスを持っています:

public class foo
{
    public foo(string a, string b) { ... }
}

私はこのようなことをしたい:

public class bar : foo
{
    public bar()
    {
        base = base("apple", "banana");
    }
}

Visual Studio は次のように叫びます。

'foo' does not contain a constructor that takes 0 arguments

これを行う方法はありますか?

4

5 に答える 5

7

これはそれを行う方法です:

public class foo
{
    public foo(string a, string b) { ... }
}

public class bar : foo
{
    public bar(): base("apple", "banana") // call base constructor
    {

    }
}

参照 :コンストラクターの使用 (C# プログラミング ガイド)

于 2012-07-12T15:17:35.620 に答える
3

次のように書き換えます。

public bar() :
    base("apple", "banana");
{
}
于 2012-07-12T15:17:31.843 に答える
1

これを試して:

public class bar : foo
{
    public bar() : base("apple", "banana")
    {
    }
}

よろしく

于 2012-07-12T15:17:50.863 に答える
1

次のことを行う必要があります。本質的に、利用可能なデフォルトのコンストラクターがないため、どのコンストラクターを使用するかをコンパイラーに伝えています。

public class foo
{
    public foo(string a, string b) { }
}

public class bar : foo
{
    public bar()
        : base("apple", "banana")
    {
    }
}
于 2012-07-12T15:19:20.330 に答える
1

基本コンストラクターを正しく呼び出すには、バー コンストラクターを変更するだけです。

public class bar : foo 
{ 
  public bar() :  base("apple", "banana")
  { 
  }
}
于 2012-07-12T15:24:18.187 に答える