ฉันกำลังพยายามใช้วิธีการขยายเพื่อเพิ่มตัวดำเนินการเกินพิกัดให้กับStringBuilderคลาสC # โดยเฉพาะได้รับStringBuilder sbฉันต้องการที่จะกลายเป็นเทียบเท่ากับsb += "text"sb.Append("text")
นี่คือไวยากรณ์สำหรับการสร้างวิธีการขยายสำหรับStringBuilder:
public static class sbExtensions
{
public static StringBuilder blah(this StringBuilder sb)
{
return sb;
}
}
มันประสบความสำเร็จเพิ่มวิธีขยายไปยังblahStringBuilder
น่าเสียดายที่การใช้งานมากเกินไปดูเหมือนจะไม่ทำงาน:
public static class sbExtensions
{
public static StringBuilder operator +(this StringBuilder sb, string s)
{
return sb.Append(s);
}
}
ในประเด็นอื่น ๆ คำหลักthisไม่ได้รับอนุญาตในบริบทนี้
มีการเพิ่มโอเปอเรเตอร์เกินพิกัดผ่านวิธีการขยายหรือไม่ ถ้าอย่างนั้นเป็นวิธีที่เหมาะสมที่จะไปเกี่ยวกับมันคืออะไร?