En resumen, no, no puedes.
Respuesta larga, los métodos de extensión son simplemente azúcar sintáctico. IE:
si tiene un método de extensión de cadena digamos:
public static string SomeStringExtension(this string s)
{
//whatever..
}
Cuando a continuación, lo llama:
myString.SomeStringExtension();
el compilador justo lo convierte en:
ExtensionClass.SomeStringExtension(myString);
Como puede ver, no hay forma de hacerlo para los métodos estáticos.
Y otra cosa acaba de darme cuenta: ¿cuál sería realmente el punto de poder agregar métodos estáticos en las clases existentes? Usted sólo puede tener su propia clase de ayuda que hace lo mismo, así que lo que es realmente la benfit en ser capaz de hacer:
Bool.Parse(..)
vs
Helper.ParseBool(..);
en realidad no trae mucho a la mesa ...
cómo puede ser esto ¿un duplicado? Esto quiere agregar un método de extensión que se comporta como un método estático (clase) a una clase que puede tener instancias como Boolean, mientras que la otra pregunta cómo agregar un método de extensión a una clase estática –
sería bueno si C# apoyara la sintaxis como: "Public DependencyProperty Register estático (DependencyProperty estático x, nombre de cadena, Tipo propertyType, Type ownerType, FrameworkPropertyMetadata typeMetadata)", para poder usarlo en Silverlight para lograr la compatibilidad con la sintaxis de WPF (para ajustar la implementación de coerción de valor de Dr.WPF) para DependencyProperty). Tenga en cuenta el parámetro "DependencyProperty estático" en lugar de "this DependencyProperty" (alternativamente en lugar de estático quizás podrían usar otras palabras clave como tipo o typeof) –
Mismo problema con 'Enum.Parse' con la provisión de una cadena. Lamentablemente, la extensión de una cadena no es tan obvia como extender una int. C# falta sintaxis! – C4u