c# string 扩展方法

场景:只显示一字符串的前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()等系统定义的方法一样。

原文地址:https://www.cnblogs.com/qk2014/p/6849068.html