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