Che cos'è e come funziona {}; funziona in c #? [duplicare]

Aug 24 2020

Durante il controllo di alcuni repo ho scoperto questo e mi ha rotto la mente.

Esempio:

 var config = Config.GetConfig();
 var gen = new MatDocumenationGenerator(typeof(BaseMatDomComponent).Assembly,
            Path.Combine(config.Path, "MatBlazor.Demo", "Doc"));
 {
 }
 ;
 gen.Generate();

Com'è possibile avere { };dentro un metodo? Perché non è un errore di compilazione?

Non ne sono sicuro ma forse è qualche caratteristica della lingua? Se sì, cosa fa o viene utilizzato? Come funziona?

Ho provato a cercare cos'è questo, ma non so nemmeno come chiamarlo, quindi, c'è un nome per questo?

Risposte

4 RichN Aug 24 2020 at 13:02

È un codice valido che non fa nulla ed è ridondante. È quasi certamente un errore e potrebbe essere rimosso senza influire sul programma. Il compilatore non avverte di tutto ciò che è ridondante, anche se sono d'accordo che potrebbe e dovrebbe in questo caso.

1 KYL3R Aug 24 2020 at 12:56

Puoi usarlo {...}in quasi tutte le lingue. Java, C ++, C # ... Apre semplicemente uno Scope che definisce la durata delle variabili che vivono sullo Stack (non sull'heap)

Esempio:

void someFunction () { 
    // some code here
    {
        var a = 5;
    }

    // 'a' does not exist anymore after the '}'

}