Domanda

Qual è la vera differenza tra un costruttore statico C # e un blocco statico Java?

Entrambi devono essere senza parametri. Entrambi sono chiamati solo una volta, quando la classe correlata primo utilizzo.

Mi manca qualcosa, o sono la stessa cosa, solo con nomi diversi?

È stato utile?

Soluzione

Sono equivalenti, tranne che una classe C # può avere un solo costruttore statico (più inizializzatori campo statico).

Inoltre, in C #, un costruttore static applicherà la beforefieldinit bandiera .

Altri suggerimenti

Si guardano lo stesso, l'esempio seguente mostra, che costruttore statico c # funziona lo stesso blocco statico in Java

protected Singleton()
{
    Console.WriteLine("Singleton constructor");
}

    private static readonly Singleton INSTANCE;

    static Singleton() {
        try {
           INSTANCE = new Singleton();
        }
        catch(Exception e) {
            throw new Exception();
        }
    }

Si Essi sono equivalenti Un altro punto è Java non supporta costruttore statico ma supporta blocco statico e costruttore statico C # sostegno.

Non sono.

In C #, ci blocchi può contenere solo i costruttori. In Java si è in grado di eseguire istruzioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top