Por que o principal ponto de entrada do método é estático na maioria dos programas C#?

StackOverflow https://stackoverflow.com/questions/2366952

  •  23-09-2019
  •  | 
  •  

Pergunta

Por que o principal ponto de entrada do método é estático na maioria dos programas C#?

Foi útil?

Solução

Para chamar um método de instância, você precisa de uma instância de um objeto. Isso significa que, para iniciar seu programa, o CLR precisaria criar uma instância de dizer Program Para chamar o método Main. Daí o construtor de Program funcionaria antes Main que derrota o objetivo de ter um principal principal.

Outras dicas

Eu mudaria a pergunta. Qual é o benefício convincente de implementar o recurso que permite que o principal seja um método de instância? Os recursos são caros; Se não houver benefício atraente, eles não serão implementados.

Você tem uma boa razão para que o principal deve ser um método de instância?

Conceitualmente, você tem apenas uma instância de uma estática. E um método estático mapeia bem o idioma de um único ponto de olhar para um programa. Os designers de idiomas poderiam ter criado uma classe de programa especial para usar com um método principal, mas optou por criar uma única função estática como ponto de entrada. Em alguns níveis, é realmente apenas uma opção de design.

Porque, caso contrário, teria que criar um objeto e a execução do construtor poderia causar efeitos colaterais negativos.

Como você poderia criar sua instância de classe antes de principal?

o .NET runtime chama o Main método. (NOTA: O principal também pode ser chamado de outros lugares, por exemplo, do código principal () em outro método de excesso de exemplo.) O static A palavra -chave torna o método acessível sem um instance do ExampleClass. Portanto, o método principal é um ponto de entrada e deve ser declarado estático.

Caso contrário, o programa exigiria uma instância, mas qualquer instância exigiria um programa.

Para evitar isso irresolúvel circular dependency O principal é usado como ponto de entrada


referência: http://en.wikipedia.org/wiki/c_sharp_(programing_language

Métodos estáticos podem ser executados sem criar uma instância. Por convenção, eles têm o main Método como o método padrão a ser chamado.

Para todos os objetos de uma classe contém método principal e outros métodos e variáveis, existem cópias separadas de cada variável e métodos contidos por todos os objetos, mas uma cópia de classe principal é apenas uma entre eles e para fazer uma cópia entre o número de objetos que temos para tornar o método principal como estático.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top