Форма не содержит конструктор, который принимает 0 аргументов - PullRequest
0 голосов
/ 23 апреля 2019

ФОРМА 1

public partial class Login : Form
{
    string cons =ConfigurationManager.ConnectionStrings["SSBarConnection"].ConnectionString;

    public Login()
    {
        InitializeComponent();
    }
    public class passData
    {
        public string UserRole = "";  
    }
    private void btn_login_Click(object sender, EventArgs e)
    {
        try
        {

            if (output == "1" && output2 != "")
            {
                passData s = new passData();
                s.UserRole = output2.ToString();
                Main FRFM1 = new Main();
                FRFM1.Show();
            }
        }

ФОРМА 2

namespace SSBar
{
    public partial class Main : Form
    {
        SSBar.Login.passData s;
        public string sa;

        public Main(Login.passData s1)
        {
            InitializeComponent();
            s = s1;
        }
 private void Main_Load(object sender, EventArgs e)
        {   
            sa=s.UserRole;
            ss_user.Text = s.UserRole;
        }
    }

1 Ответ

0 голосов
/ 23 апреля 2019
class SomeClass
{

}

class SomeClass
{
    public SomeClass()
    {
        //we will leave this empty
    }
}

Эти два класса являются одинаковыми классами.В первом случае у нас нет никакого конструктора, во втором случае у нас есть конструктор, НО ему не нужны никакие аргументы.

Если мы сделаем это так:

class SomeClass
{
    public SomeClass(string GiveMeArgument)
    {

    }
}

class SomeClass
{
    public SomeClass()
    {
        //we will leave this empty
    }


    public SomeClass(string GiveMeArgument)
    {

    }
}

Эти два классане то же самое.Теперь вы спрашиваете себя: «Почему нет, единственное, что мы сделали, - это добавили еще один конструктор, который можно использовать для создания объекта, но мы сделали это для обоих классов», и ответим: мы добавили один и тот же конструктор, НО здесь есть одно золотое правило: `Если классне имеет ЛЮБОГО конструктора, он будет вести себя так, как если бы у него был пустой конструктор (как в моем первом коде вверх), НО, если у класса есть, по крайней мере, один конструктор, его поведение по умолчанию больше не будет действительным. »Поэтому, если мы посмотрим на наш второй пример, когда мы добавили этот конструктор, который требует аргумента, мы ПОТЕРЯЛИ наше поведение класса по умолчанию, позволяющее создавать его без аргументов.

У вас есть такая же сделка внутри вашего Main класса. Чтобы решить эту проблему, просто добавьте конструктор, который не принимаетаргумент помимо вашего уже созданного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...