构造函数定义:接收"不给出参数"

The*_*l26 -1 c# visual-studio-2017

我正在尝试创建一个派生类,我收到每个构造函数的语法错误.

没有给出的参数对应于'Parent.Parent(Parent)'所需的形式参数'p'

这对我没有任何意义.这是一个构造函数定义,而不是方法调用,我以前从未在非调用的东西上看到这个.

namespace ConsoleApp1
{

        public class Parent
        {
            public string Label;

            public Parent(Parent p)
            {
                Label = p.Label;
            }
        }

        public class Child : Parent
        {
            public string Label2;

            public Child(Parent p)
            {
                Label = p.Label;
            }

            public Child(Child c)
            {
                Label = c.Label;
                Label2 = c.Label2;
            }

            public Child(string blah, string blah2)
            {
                Label = blah;
            }
        }
    class Program
    {
        static void Main(string[] args)
        {

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 6

这个:

public LabelImage(LabelImage source)
{
    Label = source.Label;
    image = new MagickImage(source.image);
    fileinfo = source.fileinfo;
}
Run Code Online (Sandbox Code Playgroud)

暗示这是:

public LabelImage(LabelImage source) : base()
{
    Label = source.Label;
    image = new MagickImage(source.image);
    fileinfo = source.fileinfo;
}
Run Code Online (Sandbox Code Playgroud)

注意该base()部分,试图调用无MyImageAndStuff参数构造函数,或者只调用params数组参数的函数,或者只调用可选参数的函数.不存在这样的构造函数,因此存在错误.

你可能想要:

public LabelImage(LabelImage source) : base(source)
{
    Label = source.Label;
    image = new MagickImage(source.image);
    fileinfo = source.fileinfo;
}
Run Code Online (Sandbox Code Playgroud)

...和所有其他构造函数类似的东西.或者,或者您需要添加无参数构造函数MyImageAndStuff.它似乎很奇怪,你不能创建一个实例MyImageAndStuff,而不已经有实例MyImageAndStuff-虽然我猜测source可能是零.