场景:只显示一字符串的前50个字符,多余的用“...”省略号替代
如果不用扩展方法当然也可以实现,写一个静态方法,如下:
public class StringUtil { /// <summary> /// 截取字符串 /// </summary> /// <param name="str">要截取的字符串</param> /// <param name="length">截取长度</param> /// <returns></returns> public static string CutString(string str, int length) { if (!string.IsNullOrEmpty(str)) { if (str.Length <= length) { return str; } else { return str.Substring(0, length) + "..."; } } else { return ""; } } }
调用:
string result=StringUtil.CutString(str,50);
使用扩展方法:
使用扩展方法要注意两个点:1)扩展方法必须定义在静态类中,2)使用this关键字
public static class StringExtension { /// <summary> /// 截取字符串,多余部分用"..."代替 /// </summary> /// <param name="str">源字符串</param> /// <param name="length">截取长度</param> /// <returns></returns> public static string CutString(this string str, int length) { if (!string.IsNullOrEmpty(str)) { if (str.Length <= length) { return str; } else { return str.Substring(0, length) + "..."; } } else { return ""; } } }
调用:
string result=str.CutString(50);
这样是不是方便一些,代码简洁一些,就像你去调用ToString(),Substring()等系统定义的方法一样。