使用+号连接字符串时,值类型需要通过装箱操作转化为引用类型才可以添加到字符串中。但是装箱操作对性能影响较大, 因为在进行这类处理时,将在托管堆中分配一个新的对象,原有的值复制到新创建的对象中。 使用值类型的ToString方法可以避免装箱操作,从而提高应用程序性能。 int num=1; string str="go"+num.ToString();
运用StringBuilder类(循环中)拼接长字符串String类对象是不可改变的,在处理字符串时,最好使用StringBuilder类,该类并非创建新的对象,而是通过Append,Remove,Insert等方法直接对字符串进行操作,通过ToString方法返回操作结果。格式化字符串时也尽量使用此类:
StringBuilder s=new StringBuilder();
s.AppendFormat(baseString,param);
避免使用ArrayList。
因为任何对象添加到ArrayList都要封箱为System.Object类型,从ArrayList取出数据时,要拆箱回实际的类型。建议使用List<T>,大幅提升值类型性能;
字符串空判断使用if (string.IsNullOrEmpty(s)) { }或if(s != null && s.Length ==0) {}
不要使用:if(s == ""){}
避免循环中创建对象在循环外创建空对象,循环内赋值使用
try{}catch(){}catch具体的异常并且不要改变流程
性能低,应避免在循环中使用
可复用的对象静态化处理,避免频繁GC如:配置文件对象:IConfigurationRoot,网络对象HttpClient