Todas las respuestas aquí indicaron "no se puede", lo cual es cierto hasta donde llega. La mayoría agregó "y no deberías". Me gustaría argumentar que usted debería poder: una pequeña comodidad ya que puede ser.
Tome un doloroso ejemplo del mundo real: si tiene la mala suerte de estar utilizando el nuevo MVC framework, y su código de vista está usando algún método de extensión HtmlHelper por todas partes, y desea anular su comportamiento predeterminado ... ¿entonces que?
Eres SOL, eso es. Incluso si realizó la "OOP thing" - derivada de HtmlHelper, cambie su clase de vista base para reemplazar la instancia de objeto 'Html' con una instancia de DerivedHtmlHelper, y defina un método 'Foo' explícito en ella, incluso si lo hizo todo que, al llamar a 'Html.Foo', todavía invocará el método de extensión original y no el método.
¡Esto es sorprendente! ¡Después de todo, solo se espera aplicar los métodos de extensión si el objeto aún no tiene un método! ¿Que está pasando aqui?
Bueno, esto porque los métodos de extensión son función estática. Es decir, al ver 'Html.Foo', el compilador examina el tipo static de 'Html'. Si tiene un método 'Foo', se llama como de costumbre. De lo contrario, si hay 'SomeClass' que proporciona un método de extensión 'Foo', convierte la expresión a 'SomeClass.Foo (Html)'.
Lo que cabría esperar es que el compilador considere el tipo de objeto dinámico del objeto. Es decir, que el código generado (pseudo-) leería 'Html.HasMethod (' Foo ')? Html.Foo(): SomeClass.Foo (Html) '.
Esto, por supuesto, incurriría en el costo de usar la reflexión en cada llamada al método de extensión. Por lo tanto, es de esperar que pueda escribir algo como 'static void Foo (virtual este HtmlHelper html)' para solicitar explícitamente al compilador que inserte la comprobación en tiempo de ejecución. Llamar a esto un "método de extensión virtual".
Sin embargo, en su presupuesto limitado y sabiduría infinita, los diseñadores del lenguaje C# fueron con la alternativa más eficiente y más restringida. Lo cual me deja todavía SOL cuando necesito anular el comportamiento predeterminado de HtmlHelper :-(
Votando porque creo que es una buena pregunta, pero una mala idea. –