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

您只需要更改 bar 构造函数即可正确调用基本构造函数。

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