C#, проблема с передачей параметров в точку входа

у меня есть класс Main, в нем различные методы, функционал приложения. есть еще класс programm, в нем точка входа в программу. проблема в том, что в классе main пользователь вводит значения, которые через конструктор присваиваються переменным. И из-за конструктора, при создании экземпляра в static void Main, нужно передавать параметры, которые передаються в конструктор, иначе при создании экземпляра они просто не будут в зоне видимости, но если передать static void main параметры, то это уже не точка входа

using System.Text;

class Main
{
    string? name = "";
    string? special_ = "";
    int? post;
    public Main(string name_, string special_, int post_)
    {

    }
    public void Menu()
    {
        //Get name
        while (true)
        {
            Console.WriteLine("Chooise do:\n\n1.Add\n2.Edit\n3.Delete\n4.View");
            string? chooice = Console.ReadLine();
            if (chooice == String.Empty || chooice?.Length != 1)
            {
                Console.WriteLine("Please, enter a correct value");
            }
            else
            {

            }
        }

    }

    //Get special
    public void Add_new_Employee()
    {
        while (true)
        {
            Console.Write("name: ");
            string? name_ = Console.ReadLine();
            StringBuilder sb = new StringBuilder(name_);

            if (name_ == String.Empty || name_?.Length < 2 || Char.IsLower(sb[0]))
            {
                Console.WriteLine("Enter a correct name");
            }
            else
            {
                break;
            }
        }

        bool val = true;
        while (val)
        {
            Console.Write("Chooise special:\n\n1.fronted developer\n2.backend developer\n3.fullstack developer");
            string? special_ = Console.ReadLine();
            if (special_ != String.Empty)
            {
                switch (special_)
                {
                    case "1":
                        special_ = "fronted";
                        val = false;
                        break;
                    case "2":
                        special_ = "backend";
                        val = false;
                        break;
                    case "3":
                        special_ = "fullstack";
                        val = false;
                        break;
                    default:
                        Console.WriteLine("Please, enter a correct value");
                        break;
                }
            }
            else
            {

            }
        }

        while (true)
        {
            Console.Write("post: ");
            string? post0_ = Console.ReadLine();
            if (post0_ != String.Empty)
            {
                try
                {
                    int? post_ = Convert.ToInt32(post0_);

                    if (post_ >= 0 && post_ <= 11)
                    {
                        break;
                    }
                    else
                    {
                        Console.WriteLine("Sorry, enter a correct value");
                    }
                }
                catch
                {
                    Console.WriteLine("Sorry, error converting");
                }
            }

        }
    }

    public void Save_Data()
    {

    }

    public void Send(string name_, string special_, int post)
    {
        Main main = new(name_, special_, post);
        main.Add_new_Employee();
    }
}

class Programm
{
    static void Main()
    {
        
    }
    public void Skip(string name_, string special_, int post_)
    {
        Main main1 = new(name_, special_, post_);
    }

}

Ответы (0 шт):