perché la parola chiave "nuova" non è una parola chiave contestuale?

0

Basato su parole chiave C #

Keywords are predefined, reserved identifiers that have special meanings to the compiler.

e basato su Parole chiave contestuali

A contextual keyword is used to provide a specific meaning in the code, but it is not a reserved word in C#.

Per la parola chiave nuova abbiamo più situazioni per utilizzarla, ad esempio:

//One situation for create an instance of class:
StringBuilder sr=new StringBuilder();

//Another situation for method hiding in polymorphism subject of OOP:
public new void Foo()
{
   //Some Code
}

Come puoi vedere la nuova parola chiave ha diversi significati A seconda di dove è usata, quindi nella mia nuova nuova deve essere considerata come Parola chiave contestuale e non parola chiave!

quindi, la definizione della parola chiave contestuale è sbagliata? o considerando nuovo come parola chiave intera? e perché?

    
posta kokabi 22.12.2014 - 14:06
fonte

1 risposta

9

La domanda non è quanti significati ha, ma se è riservata o meno.

Quando Microsoft aggiunge nuove funzionalità a C #, a volte è necessario aggiungere nuove parole chiave. Questo può compromettere la compatibilità con le versioni precedenti, poiché invalida il vecchio codice che dichiara identificatori con lo stesso nome. Per evitare ciò, Microsoft rende queste nuove parole chiave contestuali - servono solo come parole chiave quando sono posizionate in luoghi specifici, luoghi in cui normalmente non si possono inserire identificatori.

Quindi - async è una parola chiave contestuale poiché il codice precedente potrebbe aver dichiarato una variabile denominata async .

new era lì dal primo giorno, quindi non ha questo problema - se il tuo codice dichiarasse una variabile chiamata new , non funzionerebbe nemmeno nella prima versione di C #. Pertanto, qui non esiste alcun problema di compatibilità con le versioni precedenti e new può essere una normale parola chiave.

    
risposta data 22.12.2014 - 15:23
fonte

Leggi altre domande sui tag