继承问题C#

继承问题C#,c#,inheritance,C#,Inheritance,我的应用程序中的继承有一个小问题。我有一个基类客户机,它有一个子类作业。基本上,我正在尝试为Job创建构造函数,但遇到一个错误:“Job\u Manager\u Application.Client”不包含接受0个参数的构造函数 不明白它为什么这么做 提前感谢。您的客户机类有一个接受参数的构造函数 因此,作业构造函数需要将参数传递给客户端 例如: class Client{ public string Name {get;set;} public Client(string na

我的应用程序中的继承有一个小问题。我有一个基类客户机,它有一个子类作业。基本上,我正在尝试为Job创建构造函数,但遇到一个错误:“Job\u Manager\u Application.Client”不包含接受0个参数的构造函数

不明白它为什么这么做


提前感谢。

您的客户机类有一个接受参数的构造函数

因此,作业构造函数需要将参数传递给客户端

例如:

class Client{
    public string Name {get;set;}
    public Client(string name){
        this.Name = name;
    }
}
--


您的客户机类有一个接受参数的构造函数

因此,作业构造函数需要将参数传递给客户端

例如:

class Client{
    public string Name {get;set;}
    public Client(string name){
        this.Name = name;
    }
}
--


为什么
Job
客户机的子类?继承代表的是一种关系(a
Cat
是一种
Animal
so
class-Cat:Animal{}
)。
作业
不是
客户

无论如何,您的错误消息是清楚的。在
客户端上没有可访问的无参数构造函数。然后,您需要从
Job
上的构造函数显式调用客户端上的构造函数

class Client {
    public string Name { get; set; }
    public Client(string name) { this.Name = name; }
}

class Job : Client {
    public Job(string name) : base(name) { }
}
看到那边的
base(name)
了吗?在
Client
上调用基本构造函数
Client.Client(字符串)
。如果未显式指定基构造函数,编译器将尝试查找可访问的无参数构造函数。如果没有,您将得到您所经历的编译时错误

因此,您或者需要像我上面所做的那样,显式调用一个可访问的无参数构造函数,或者向
客户机
添加一个无参数构造函数


但请重新考虑一下你的模式。
作业
不是
客户端
为什么
作业
客户端
的子类?继承代表的是一种关系(a
Cat
是一种
Animal
so
class-Cat:Animal{}
)。
作业
不是
客户

无论如何,您的错误消息是清楚的。在
客户端上没有可访问的无参数构造函数。然后,您需要从
Job
上的构造函数显式调用客户端上的构造函数

class Client {
    public string Name { get; set; }
    public Client(string name) { this.Name = name; }
}

class Job : Client {
    public Job(string name) : base(name) { }
}
看到那边的
base(name)
了吗?在
Client
上调用基本构造函数
Client.Client(字符串)
。如果未显式指定基构造函数,编译器将尝试查找可访问的无参数构造函数。如果没有,您将得到您所经历的编译时错误

因此,您或者需要像我上面所做的那样,显式调用一个可访问的无参数构造函数,或者向
客户机
添加一个无参数构造函数


但请重新考虑一下你的模式。
作业
不是
客户端

客户端有一个接受参数的构造函数,您没有正确调用它

public class Job
{
    public Job(int num) { }
}

public class Client : Job
{
    public Client() : base(1) {}
}

客户端有一个接受参数的构造函数,您没有正确调用它

public class Job
{
    public Job(int num) { }
}

public class Client : Job
{
    public Client() : base(1) {}
}

至少,你应该在这里提供一段代码让我们想象问题。@hinkrate:编译器消息在这一条上是100%清楚的。至少,你应该在这里提供一段代码让我们想象问题。@hinkrate:编译器消息在这一条上是100%清楚的。