Tôi đang cố gắng sử dụng các phương thức mở rộng để thêm quá tải toán tử vào lớp C # StringBuilder
. Cụ thể, được đưa ra StringBuilder
sb
, tôi muốn sb += "text"
trở nên tương đương với sb.Append("text")
.
Đây là cú pháp để tạo một phương thức mở rộng cho StringBuilder
:
public static class sbExtensions
{
public static StringBuilder blah(this StringBuilder sb)
{
return sb;
}
}
Nó thành công thêm blah
phương thức mở rộng cho StringBuilder
.
Thật không may, quá tải toán tử dường như không hoạt động:
public static class sbExtensions
{
public static StringBuilder operator +(this StringBuilder sb, string s)
{
return sb.Append(s);
}
}
Trong số các vấn đề khác, từ khóa this
không được phép trong bối cảnh này.
Có thể thêm quá tải toán tử thông qua các phương thức mở rộng có thể? Nếu vậy, cách thích hợp để đi về nó là gì?