Saudações a todos ... Eu preciso Trim
de um String
. Mas eu quero remover todos os espaços em branco repetidos dentro da própria String, não apenas no final ou no início dela. Eu poderia fazer isso com um método como:
public static string ConvertWhitespacesToSingleSpaces(string value)
{
value = Regex.Replace(value, @"\s+", " ");
}
Que eu peguei daqui . Mas eu quero que esse pedaço de código seja chamado dentro do String.Trim()
próprio, então acho que preciso estender ou sobrecarregar ou substituir o Trim
método ... Existe uma maneira de fazer isso?
Desde já, obrigado.
c#
string
extension-methods
trim
Girardi
fonte
fonte
É possível? Sim, mas apenas com um método de extensão
A classe
System.String
é lacrada, então você não pode usar substituição ou herança.fonte
String.Trim
executam.Há um sim e um não em sua pergunta.
Sim, você pode estender os tipos existentes usando métodos de extensão. Os métodos de extensão, naturalmente, só podem acessar a interface pública do tipo.
Não, você não pode chamar este método
Trim()
. Os métodos de extensão não participam da sobrecarga. Acho que um compilador deve até mesmo fornecer uma mensagem de erro detalhando isso.Os métodos de extensão só são visíveis se o namespace que contém o tipo que define o método estiver usando'ed.
fonte
Métodos de extensão!
fonte
Além de usar métodos de extensão - provavelmente um bom candidato aqui - também é possível "embrulhar" um objeto (por exemplo, "composição de objeto"). Desde que o formulário empacotado não contenha mais informações do que a coisa que está sendo empacotada, então o item empacotado pode ser passado de forma limpa por meio de conversões implícitas ou explícitas sem perda de informação: apenas uma mudança de tipo / interface.
Boa codificação.
fonte