L'unica ragione per cui posso pensare è che a volte è necessario scrivere metodi protetti per scavalcare altri metodi protetti. Il linguaggio potrebbe sono stati progettati per permettere questo:
protected override void Foo()
ma non questa
protected void Foo()
ma che avrebbe potuto essere visto per essere un po 'difficile da seguire - è il assenza di override
che lo rende inutile, mentre nel caso di
public virtual void Foo()
è il presenza di virtual
che è inutile. La presenza di qualcosa di "sbagliato" è probabilmente più facile da capire rispetto all'assenza di qualcosa di utile.
In questo caso, essere virtuale può anche avere implicazioni sulle prestazioni, mentre la creazione di qualcosa di protetto anziché privato probabilmente non lo è, quindi è un po 'più grave.
Queste sono solo ipotesi, ma davvero - se saremo davvero fortunati, Eric Lippert darà una risposta più definitiva. E 'quello che vuoi, non mi :)
Miglior risposta: trattare gli avvisi come errori e loro sono equivalenti comunque;)
fonte
2009-07-21 13:39:38
Darei una risposta, ma per qualche ragione penso che JS ne avrebbe uno migliore. Hmm. –
A quanto pare JS sta dando priorità a SO a THREAD_PRIORITY_BELOW_NORMAL - rapidamente tutti possono ottenere le risposte mentre è ancora possibile! – cfeduke
+1 buona domanda, non mi sono mai imbattuto in questa causa, non ho mai nemmeno pensato di farlo ... perché non ha senso! –