Saludos a todos ... necesito Trim
una String
. Pero quiero eliminar todos los espacios en blanco repetidos dentro de la Cadena en sí, no solo al final o al comienzo. Podría hacerlo con un método como:
public static string ConvertWhitespacesToSingleSpaces(string value)
{
value = Regex.Replace(value, @"\s+", " ");
}
Que obtuve de aquí . Pero quiero que se llame a este fragmento de código dentro de String.Trim()
sí mismo, así que creo que necesito extender, sobrecargar o anular el Trim
método ... ¿Hay alguna manera de hacerlo?
Gracias por adelantado.
c#
string
extension-methods
trim
Girardi
fuente
fuente
¿Es posible? Sí, pero solo con un método de extensión
La clase
System.String
está sellada, por lo que no puede usar la invalidación o la herencia.fuente
String.Trim
realizan.Hay un sí y un no a tu pregunta.
Sí, puede ampliar los tipos existentes utilizando métodos de extensión. Los métodos de extensión, naturalmente, solo pueden acceder a la interfaz pública del tipo.
No, no puede llamar a este método
Trim()
. Los métodos de extensión no participan en la sobrecarga. Creo que un compilador debería incluso darte un mensaje de error detallando esto.Los métodos de extensión solo son visibles si el espacio de nombres que contiene el tipo que define el método está using'ed.
fuente
¡Métodos de extensión!
fuente
Además de utilizar métodos de extensión, probablemente un buen candidato aquí, también es posible "envolver" un objeto (por ejemplo, "composición de objeto"). Siempre que el formulario empaquetado no contenga más información que la cosa que se está empaquetando, el elemento empaquetado puede pasar limpiamente a través de conversiones implícitas o explícitas sin pérdida de información: solo un cambio de tipo / interfaz.
Codificación feliz.
fuente