C# &引用;没有给出与所需形式参数“相对应的参数”;论构造器

C# &引用;没有给出与所需形式参数“相对应的参数”;论构造器,c#,forms,winforms,C#,Forms,Winforms,表单1是主表单,而在表单2中,有一个输入要在表单1中使用 表格1: public partial class Form1 : Form { public Form1(string size) { InitializeComponent(); lblsize.Text = size; } } public void btnok_Click(object sender, EventArgs e) { //strin

表单1是主表单,而在表单2中,有一个输入要在表单1中使用

表格1:

public partial class Form1 : Form
{
    public Form1(string size)
    {
        InitializeComponent();
        lblsize.Text = size;

    }
}
public void btnok_Click(object sender, EventArgs e)
    {

        //string ukuran = txtsize.Text;
        Form1 frm1 = new Form1(txtsize.Text);
        this.Hide();

    }
表格2:

public partial class Form1 : Form
{
    public Form1(string size)
    {
        InitializeComponent();
        lblsize.Text = size;

    }
}
public void btnok_Click(object sender, EventArgs e)
    {

        //string ukuran = txtsize.Text;
        Form1 frm1 = new Form1(txtsize.Text);
        this.Hide();

    }
然后我得到这个错误:

“未给出与所需形式参数'size'相对应的参数'Form1.Form1(string)'


在windows窗体应用程序项目中,您将有一个名为
Program.cs
的文件。在该文件中,您将发现一行类似于以下内容的代码:

Application.Run(new Form1());
这是应用程序的入口点。既然您在
Form1
类中引入了另一个构造函数,那么就找不到默认的无参数构造函数。因此,您会遇到该错误

修复

要修复此错误,您可以向
Form1
类添加无参数构造函数,如下所示:

public Form1()
{
}
public class Foo
{ 
    // no constructor
} 
public class Foo
{ 
    public Foo() { }  
} 
这将允许
Program.cs
类在进入过程中构造
Form1
,并且您将有另一个构造函数根据需要将
size
传递给它

附加说明

在C#中,如果您有这样一个类:

public Form1()
{
}
public class Foo
{ 
    // no constructor
} 
public class Foo
{ 
    public Foo() { }  
} 
默认情况下,编译器将为您生成一个,如下所示:

public Form1()
{
}
public class Foo
{ 
    // no constructor
} 
public class Foo
{ 
    public Foo() { }  
} 

但是,一旦您添加了一个构造函数(您这样做了),编译器将不再为您创建默认构造函数(显然它没有)。希望解释有所帮助。

在windows窗体应用程序项目中,您将有一个名为
Program.cs
的文件。在那里,您将发现一行类似于以下内容的代码:

Application.Run(new Form1());
这是应用程序的入口点。既然您在
Form1
类中引入了另一个构造函数,那么就找不到默认的无参数构造函数。因此,您会遇到该错误

修复

要修复此错误,您可以向
Form1
类添加无参数构造函数,如下所示:

public Form1()
{
}
public class Foo
{ 
    // no constructor
} 
public class Foo
{ 
    public Foo() { }  
} 
这将允许
Program.cs
类在进入过程中构造
Form1
,并且您将有另一个构造函数根据需要将
size
传递给它

附加说明

在C#中,如果您有这样一个类:

public Form1()
{
}
public class Foo
{ 
    // no constructor
} 
public class Foo
{ 
    public Foo() { }  
} 
默认情况下,编译器将为您生成一个,如下所示:

public Form1()
{
}
public class Foo
{ 
    // no constructor
} 
public class Foo
{ 
    public Foo() { }  
} 

但是,一旦您添加了一个构造函数(您这样做了),那么编译器将不再为您创建默认构造函数(显然它没有这样做)。希望解释有帮助。

即使@CodingYoshi给了你答案,你也应该公布错误发生的地方。否则,我们怎么可能知道需要修复的地方?即使@CodingYoshi给了你答案,你也应该公布错误发生的地方。否则,我们怎么可能知道需要修复的地方?