¿Hay alguna diferencia práctica entre estos dos métodos de extensión?¿Existe alguna diferencia práctica entre un método de extensión en <T> o en Object?
class Extensions
{
public static void Foo<T>(this T obj) where T : class { ... }
public static void Foo(this object obj) { ... }
}
que estaba hurgando en Extension Overflow y me encontré con la primera forma, que no he usado antes. Curioso cuál es la diferencia.
Además, el método se conoce el tipo del argumento, incluso si es 'null', al utilizar la versión genérica. Podría importar, o podría no serlo. –