static void Main(string[] args)
        {
            Console.WriteLine("\nSISTEMA DE CONTROLE DE EMPRESAS E FUNCIONÁRIOS\n");

            var empresaController     = new EmpresaController();
            var funcionarioController = new FuncionarioController();

            Console.WriteLine("(1) Cadastrar empresa");
            Console.WriteLine("(2) Atualizar empresa");
            Console.WriteLine("(3) Excluir empresa");
            Console.WriteLine("(4) Consultar empresas");
            Console.WriteLine("(5) Cadastrar funcionário");
            Console.WriteLine("(6) Atualizar funcionário");
            Console.WriteLine("(7) Excluir funcionário");
            Console.WriteLine("(8) Consultar funcionários");
            Console.WriteLine("(9) Consultar funcionários por empresa");
            Console.WriteLine("(0) Sair");

            try
            {
                Console.Write("\nEscolha a opção desejada: ");
                var opcao = int.Parse(Console.ReadLine());

                switch (opcao)
                {
                case 1:
                    empresaController.CadastrarEmpresa();
                    Main(args);     //recursividade
                    break;

                case 2:
                    empresaController.AtualizarEmpresa();
                    Main(args);     //recursividade
                    break;

                case 3:
                    empresaController.ExcluirEmpresa();
                    Main(args);     //recursividade
                    break;

                case 4:
                    empresaController.ConsultarEmpresas();
                    Main(args);     //recursividade
                    break;

                case 5:
                    funcionarioController.CadastrarFuncionario();
                    Main(args);     //recursividade
                    break;

                case 6:
                    funcionarioController.AtualizarFuncionario();
                    Main(args);     //recursividade
                    break;

                case 7:
                    funcionarioController.ExcluirFuncionario();
                    Main(args);     //recursividade
                    break;

                case 8:
                    funcionarioController.ConsultarFuncionarios();
                    Main(args);     //recursividade
                    break;

                case 9:
                    funcionarioController.ConsultarFuncionariosPorEmpresa();
                    Main(args);     //recursividade
                    break;

                case 0:
                    Console.WriteLine("\nFIM DO PROGRAMA!");
                    break;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("\nErro: " + e.Message);
            }

            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            Console.WriteLine("\n*** CONTROLE DE FUNCIONARIOS ***\n");

            try
            {
                Console.WriteLine("(1) Cadastrar Funcionário");
                Console.WriteLine("(2) Atualizar Funcionário");
                Console.WriteLine("(3) Excluir Funcionário");
                Console.WriteLine("(4) Consultar Funcionários");

                Console.WriteLine("-");

                Console.WriteLine("(5) Cadastrar Dependente");
                Console.WriteLine("(6) Atualizar Dependente");
                Console.WriteLine("(7) Excluir Dependente");
                Console.WriteLine("(8) Consultar Dependentes");

                Console.Write("\n Informe a opção desejada: ");
                int opcao = int.Parse(Console.ReadLine());

                //criando os objetos

                var funcionarioController = new FuncionarioController();
                var dependenteController  = new DependenteController();

                switch (opcao)
                {
                case 1:
                    funcionarioController.CadastrarFuncionario();
                    break;

                case 2:
                    funcionarioController.AtualizarFuncionario();
                    break;

                case 3:
                    funcionarioController.ExcluirFuncionario();
                    break;

                case 4:
                    funcionarioController.ConsultarFuncionarios();
                    break;

                case 5:
                    dependenteController.CadastrarDependente();
                    break;

                case 6:
                    dependenteController.AtualizarDependente();
                    break;

                case 7:
                    dependenteController.ExcluirDependente();
                    break;

                case 8:
                    dependenteController.ConsultarDependentes();
                    break;

                default:
                    break;
                }
            }
            catch (Exception e)
            {
                //imprimindo mensagem de erro
                Console.WriteLine("Erro: " + e.Message);
            }
            finally
            {
                Console.WriteLine("\n Fim do Programa!");
            }

            Console.ReadKey(); //pausar a execução
        }