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
分配任务的目的是什么?是否要在派生构造函数之前调用参数化的基构造函数?是的,如果不显式调用基构造函数,派生类默认构造函数将尝试调用基默认构造函数,但没有。是的,如果不显式调用基构造函数,派生类默认构造函数将尝试调用基本默认构造函数,但没有。