Przeciążanie operatora za pomocą metod rozszerzeń C #
Próbuję użyć metod rozszerzenia, aby dodać przeciążenie operatera do C #StringBuilder
klasa. W szczególności podaneStringBuilder
sb
, Chciałbymsb += "text"
stać się równoważnymsb.Append("text")
.
Oto składnia do tworzenia metody rozszerzenia dlaStringBuilder
:
public static class sbExtensions
{
public static StringBuilder blah(this StringBuilder sb)
{
return sb;
}
}
Z powodzeniem dodajeblah
metoda rozszerzenia doStringBuilder
.
Niestety, przeciążenie operatora nie działa:
public static class sbExtensions
{
public static StringBuilder operator +(this StringBuilder sb, string s)
{
return sb.Append(s);
}
}
Między innymi słowo kluczowethis
nie jest dozwolone w tym kontekście.
Czy możliwe jest dodanie przeciążenia operatora za pomocą metod rozszerzenia? Jeśli tak, jaki jest właściwy sposób postępowania?