Perchè è il principale punto di metodo di inserimento nella maggior C # programmi statica?
-
23-09-2019 - |
Domanda
Perché è il principale punto di metodo di inserimento nella maggior C # programmi statico?
Soluzione
Per chiamare un metodo di istanza è necessario un'istanza di un oggetto. Ciò significa, in modo da avviare il programma di CLR avrebbero bisogno di creare un'istanza di dire Program
al fine di chiamare il metodo Main
. Quindi il costruttore di Program
correrebbe prima Main
che sconfigge lo scopo di avere un principale complessivamente.
Altri suggerimenti
mi piacerebbe girare intorno alla questione. Qual è il vantaggio convincente di attuare la funzione che consente principale di essere un metodo di istanza? Caratteristiche sono costosi; se non v'è alcun beneficio convincente, che non vengano attuate.
Avete una buona ragione per cui principale dovrebbe essere consentito di essere un metodo di istanza?
Concettualmente si ha una sola istanza di una statica. E un metodo statico mappe bene al linguaggio di un unico punto fisso per un programma. I progettisti di linguaggi avrebbero potuto creare una classe speciale programma da utilizzare con un metodo main ma ha scelto di creare una funzione statica singolo come punto di ingresso. In alcuni livelli è davvero solo una scelta di design.
Perché altrimenti avrebbe dovuto creare un oggetto, e in esecuzione il costruttore potrebbe causare effetti collaterali negativi.
Come si potrebbe creare l'istanza della classe prima principale altrimenti?
Il .NET runtime
chiama il metodo Main
. (Nota: principale può anche essere chiamato da altrove, per esempio dal codice Main () in un altro metodo di ExampleClass.) La parola chiave static
rende il metodo accessibili senza un instance
di ExampleClass
. Così principale metodo è un punto di ingresso e deve essere dichiarato statico.
In caso contrario, il programma richiederebbe un esempio, ma qualsiasi esempio sarebbe richiedere un programma.
Per evitare che irrisolvibile circular dependency
principale viene utilizzato come un punto di ingresso
di riferimento: http://en.wikipedia.org/wiki/C_Sharp_(programming_language
I metodi statici può essere eseguito senza creare un'istanza. Per convenzione, hanno il metodo main
come il metodo di default alla chiamata.
ogni oggetti di una classe contiene metodo principale e altri metodi e variabili, ci sono copie separate di ciascuna variabile e metodi contenuta da tutti gli oggetti ma una copia classe principale è uno solo tra loro e quindi fare una copia tra il numero di oggetti dobbiamo fare principale metodo statico.