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(, 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(, length) + "...";
}
}
else
{
return "";
}
}
}
扩展方法
调用:
string result=str.CutString(50);
这样是不是方便一些,代码简洁一些,就像你去调用ToString(),Substring()等系统定义的方法一样。
c# string 扩展方法的更多相关文章
- 扩展方法 1 简单的string扩展方法
这里是关于 String的简单扩展方法 (静态类 静态方法 this 类型 这里是string) static class Program { static void Main(string[] ar ...
- JS中的PadLeft、PadRight,位数不足,自动补位,String扩展方法
类似C#中的 PadLeft.PadRight方法 //方法一 function FillZero(p) { return new Array(3 - (p + '').length + 1).joi ...
- C#扩展方法知多少
前言:上篇 序列化效率比拼——谁是最后的赢家Newtonsoft.Json 介绍了下序列化方面的知识.看过Demo的朋友可能注意到了里面就用到过泛型的扩展方法,本篇打算总结下C#扩展方法的用法.博主打 ...
- C#扩展方法学习笔记
C#扩展方法,简单的理解是不修改原来类的源代码的情况下,为某个类添加某个方法.扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的.它们的第一个参数指定该方法作用于哪个类型,并且该参数以 th ...
- 再谈扩展方法,从string.IsNullOrEmpty()说起
string.IsNullOrEmpty()这个方法算得上是.net中使用频率最高的方法之一.此方法是string的一个静态方法,类似的静态方法在string这个类中还有很多.那么这样的方法作为静态方 ...
- ASP.Net string 类的扩展方法 [转]
string 类的扩展方法列表(基本相同于 IEnumerable<T> 接口的成员列表): Aggregate<> //累加 All<> / ...
- c# 扩展方法 奇思妙用 高级篇 九:OrderBy(string propertyName, bool desc)
下面是 Queryable 类 中最常用的两个排序的扩展方法: 1 2 public static IOrderedQueryable<TSource> OrderBy<TSourc ...
- 给 string 添加一个 GetInputStream 扩展方法
有时候,我们须要读取一些数据,而无论这数据来源于磁盘上的数据文件,还是来源于网络上的数据.于是.就有了以下的 StringExtensions.cs: using System; using Syst ...
- 给string定义一个扩展方法
创建一个 static 的类,并且里面的方法也必须是static的,第一个参数是被扩展的对象,必须标注为this,使用时,必须保证namespace using进来了. 实例: using Syste ...
随机推荐
- MAC OS查看端口占用情况及杀死进程
终端命令 sudo lsof -i :9000 COMMAND PID USER FD TYPE DEVICE ...
- MVC的Membership
摘自:http://stackoverflow.com/a/16734651/1616023 See the summaries below each quote for a quick answer ...
- Fedora Server 21下OpenJdk和Oracle Jdk共存
最新文章:Virson's Blog 参考文章:博客园-三维蚂蚁 Linux公社 1.首先需要下载对应平台的Jdk:Oracle 官网 2.使用yum或rpm命令安装Jdk: yum install ...
- CentOS重新加载网卡报错 Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/23
最新文章:Virson's Blog 重新加载网卡时出现的错误如下: [root@vdb1 dev]# service network restart Shutting down interface ...
- 深度学习的batch_size
知乎讨论: https://www.zhihu.com/question/61607442/answer/204675996 案例一 http://www.myzaker.com/article/5a ...
- 假期小结 BIO, NIO, AIO
虽然忙碌,但仍小有收获,开心. 引子 BIO: Blocking IO,阻塞式IO NIO: Non-blocking IO,非阻塞式IO AIO: Async IO,异步IO 问题 什么是阻塞式IO ...
- Please install [clang](http://clang.llvm.org/) or check configuration `clang.executable`
解决方法: 1.安装clang 第一步:首先打开VScode编辑器 第二步:点击左侧“应用商店”栏 第三步:在“应用商店搜索拓展”栏输入关键字“clang” 第四步:安装提示的“C/c++ clang ...
- ELK+Filebeat+Kafka+ZooKeeper 构建海量日志分析平台
日志分析平台,架构图如下: 架构解读 : (整个架构从左到右,总共分为5层) 第一层.数据采集层 最左边的是业务服务器集群,上面安装了filebeat做日志采集,同时把采集的日志分别发送给两个logs ...
- PISQLDAS 查询语句
SELECT tag,CAST(value AS Float64) FROM piarchive..piavg WHERE tag = ? AND time >= DATE(?) AND tim ...
- Java8学习笔记(十)--自定义收集器
前言 以前写过Java8中的自定义收集器,当时只是在文章末尾放了个例子,觉得基本用法挺简单,而且有些东西没搞懂(比如combiner方法到底做什么的),没有专门写,过了一段时间又忘了,所以,即使还是没 ...