错误“成员名称不能与其封闭类型相同”

时间:2012-10-16 00:43:15

标签: c#

我需要打开一个FrmEscacacao,它将FrmAdmin的信息发送到FrmEscalacao,并带有一个名为“time”的字符串

这是FrmAdmin的代码

public partial class FrmAdmin : Form
{
    private string time;

    public FrmAdmin(string time)
    {
        InitializeComponent();

        this.time = time;
    }

    public void btnEscalar_Click(object sender, EventArgs e)
    {
        this.Hide();
        FrmEscalacao f1 = new FrmEscalacao();
        f1.ShowDialog();
    }

}

这是FrmEscalacao的代码

public partial class FrmEscalacao : Form
{
    public string time;

        private void FrmEscalacao (string time)
        {

            InitializeComponent();

            this.time = time;

            SQLiteConnection ocon = new SQLiteConnection(Conexao.stringConexao);
            DataSet ds = new DataSet();
            ocon.Open();
            SQLiteDataAdapter da = new SQLiteDataAdapter();
            da.SelectCommand = new SQLiteCommand("Here is the SQL command");
            DataTable table = new DataTable();
            da.Fill(table);
            BindingSource bs = new BindingSource();
            bs.DataSource = table;
            DataTimes.DataSource = bs;
            ocon.Close();

        }

它在

处返回错误
private void FrmEscalacao (string time)

2 个答案:

答案 0 :(得分:4)

您只能使用与该类名称匹配的构造函数。 如果它是构造函数的声明,那么它应该是

public FrmEscalacao(string time) {...}

构造函数不应该有任何返回类型。你不应该声明它private,如果它将被用来创建那种类型的instanse;它应该是public

然后你应该使用它:

FrmEscalacao f1 = new FrmEscalacao("your time"); 

也就是说,您必须为time类型的string参数指定值。

答案 1 :(得分:1)

您需要将参数传递给构造函数。

所以,要么添加另一种方法如下:

public FrmEscalacao()
{
    //all your code
}

另外,在带参数的构造函数上将构造函数更改为public void。

public FrmEscalacao(string time)
{
    //all your code
}

构造函数自动不返回任何内容,因此您无需将它们标记为无效。