Estou tentando usar métodos de extensão para adicionar uma sobrecarga de operador à StringBuilderclasse C # . Especificamente, StringBuilder sbeu gostaria de sb += "text"me tornar equivalente a sb.Append("text").
Aqui está a sintaxe para criar um método de extensão para StringBuilder:
public static class sbExtensions
{
public static StringBuilder blah(this StringBuilder sb)
{
return sb;
}
}
Ele adiciona com êxito o blahmétodo de extensão ao arquivo StringBuilder.
Infelizmente, a sobrecarga do operador não parece funcionar:
public static class sbExtensions
{
public static StringBuilder operator +(this StringBuilder sb, string s)
{
return sb.Append(s);
}
}
Entre outros problemas, a palavra this- chave não é permitida neste contexto.
É possível adicionar sobrecargas do operador por meio de métodos de extensão? Se sim, qual é a maneira correta de fazer isso?