Eventuali duplicati:
Is there any way in C# to override a class method with an extension method?Sostituisci (o ombreggia) un metodo con metodo di estensione?
E 'possibile override o shadow (new in C#) metodi di istanza con i metodi di estensione?
Eventuali duplicati:
Is there any way in C# to override a class method with an extension method?Sostituisci (o ombreggia) un metodo con metodo di estensione?
E 'possibile override o shadow (new in C#) metodi di istanza con i metodi di estensione?
No. Da MSDN:
È possibile utilizzare metodi di estensione per estendere una classe o interfaccia, ma non ignorare loro. Non verrà mai chiamato un metodo di estensione con lo stesso nome e firma di un'interfaccia o di un metodo di classe. Al momento della compilazione, i metodi di estensione hanno sempre una priorità inferiore rispetto ai metodi di istanza definiti nel tipo stesso.
Stavo per citare esattamente lo stesso articolo;) –
@Jean; Esattamente. Inoltre, ricorda che i metodi di estensione sono solo zucchero sintattico; in realtà non stai estendendo la classe, semplicemente facendo un metodo statico che prende la classe come argomento. –
Ottimo punto, molte persone dimenticano * come * funzionano. – Gregory