Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 重载基构造函数_C#_Asp.net_C# 4.0 - Fatal编程技术网

C# 重载基构造函数

C# 重载基构造函数,c#,asp.net,c#-4.0,C#,Asp.net,C# 4.0,我有一门课是这样的: public class foo { public foo(string a, string b) { ... } } public class bar : foo { public bar() { base = base("apple", "banana"); } } public bar() : base("apple", "banana"); { } 我想这样做: public class foo {

我有一门课是这样的:

public class foo
{
    public foo(string a, string b) { ... }
}
public class bar : foo
{
    public bar()
    {
        base = base("apple", "banana");
    }
}
public bar() :
    base("apple", "banana");
{
}
我想这样做:

public class foo
{
    public foo(string a, string b) { ... }
}
public class bar : foo
{
    public bar()
    {
        base = base("apple", "banana");
    }
}
public bar() :
    base("apple", "banana");
{
}
Visual Studio对我大喊大叫说:

'foo' does not contain a constructor that takes 0 arguments
有没有办法做到这一点?

像这样重写:

public class foo
{
    public foo(string a, string b) { ... }
}
public class bar : foo
{
    public bar()
    {
        base = base("apple", "banana");
    }
}
public bar() :
    base("apple", "banana");
{
}
重写如下:

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

这是一种方法:

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

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

    }
}

参考资料:

这是一种方法:

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

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

    }
}
参考资料:

试试这个:

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

试试这个:

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

关于

您需要执行以下操作。本质上,您是在告诉编译器要使用哪个构造函数,因为没有可用的默认构造函数

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

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

您需要执行以下操作。本质上,您是在告诉编译器要使用哪个构造函数,因为没有可用的默认构造函数

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

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

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

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

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

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

我不明白你想做什么。重载基构造函数是什么意思?向
base
分配任务的目的是什么?你想在派生构造函数之前调用参数化的基构造函数吗?我不明白你想做什么。重载基构造函数是什么意思?向
base
分配任务的目的是什么?是否要在派生构造函数之前调用参数化的基构造函数?是的,如果不显式调用基构造函数,派生类默认构造函数将尝试调用基默认构造函数,但没有。是的,如果不显式调用基构造函数,派生类默认构造函数将尝试调用基本默认构造函数,但没有。