大家都知道StringBuilder是处理字符串的首选,我不太明白为什么StringBuilder提供的方法竟然比string类要少,挺奇怪。
废话不多说,直接图文跟着走吧。
上图先(我写好的拓展方法):
默认StringBuilder是没有IndexOf方法的,这里IndexOf方法是我自己拓展上去的。
如何来实现这个拓展呢,代码如下:
using System;using System.Collections.Generic;using System.Text;namespace ExtensionMethod{ public static class StringBuilderExtension { ////// 这是我自己写的StringBuilder的拓展方法 /// /// StringBuilder字符串类型 /// 要检索的值 ///public static int IndexOf(this StringBuilder sb, char value) { for (int i = 0; i < sb.Length; i++) { if (sb[i] == value) return i; } return -1; } }}
注意看方法结构里面的第一个参数,加了个this,这样就表示为StringBuilder的拓展方法了。
另外要注意的地方:拓展方法是在.NET 3.5以上版本才支持的,需要组件System.Core
如果你的项目版本已经调整至3.5以上,无需引入这个System.Core组件,项目会默认带上它的。
附上Demo源码项目:
参考: