Per i campi, non esiste; l'IL è semplicemente:
.field public string Name
ecc - dal momento che non esiste il concetto di campi virtuali o newslot ecc Il modificatore new
qui esiste puramente per il compilatore, per affermare che si riconosce si sta facendo qualcosa un po 'di confusione. L'aggiunta di new
qui sopprimerà un avviso del compilatore (CS0108), ma non modifica l'IL. Pertanto, non è possibile distinguere tra un camponew
d da un campo rispetto a un campo che è stato nascosto senza new
.
Sarebbe preferibile, tuttavia, se ci si limita a campi privati con proprietà pubbliche di accesso. E si noti che in entrambi i casi: il campo nel tipo di base esiste ancora.
fonte
2011-08-31 12:19:36
non dovresti davvero esporre campi come questo ... usa invece una proprietà. –
anche tu dovresti semplicemente impostare il valore, non creare un nuovo riferimento. –
@Daniel: nuovo in questo caso significa non utilizzare quello nella classe base –