C# 操作字符串注意事项

下面是常见的一个例子

   static void Main(string[] args) {
            string str = "test"+9;
            string str2 = "test" + 9.ToString();
        }

这里要比较str和str2这个过程的区别,下面来看看IL代码

这个过程可以看到发生了一次很明显的装箱操作,这个如果平时不注意的话,用+号来进行字符串拼接,这个虽然从入门的时候,老师就和我们说可以用+号来进行拼接。

str2的时候,我们先调用System.Int32的Tostring()方法来进行拼接,

Int32.ToString()里面调用的是NumberFormatInt32()方法

然后这个方法

[MethodImpl(MethodImplOptions.InternalCall), SecurityCritical] 从这个我们可以看出这个方法是CLR里面的内部方法

实际上呢Number.FormatInt32是一个非托管方法,他是直接操作内存来完成int到string类型的转换,效率当然要比装箱高很多。

所以在使用其他值类型引用类型到字符串的转换并完成拼接,应当避免用“+”。

时间: 2024-12-14 02:11:52

C# 操作字符串注意事项的相关文章

【转】Windows内核下操作字符串!

* Windows内核下操作字符串! */ #include <ntddk.h> #include <ntstrsafe.h> #define BUFFER_SIZE 1024 VOID DriverUnload(IN PDRIVER_OBJECT pDriverObject) { KdPrint(("DriverUnload Load...\n")); } //==================================================

LINQ:To Objects - 如何操作字符串

LINQ 如何操作字符串 前言: 上次发布的 <LINQ:进阶 - LINQ 标准查询操作概述>(90+赞) 社会反响不错,但自己却始终觉得缺点什么!“纸上得来终觉浅,绝知此事要躬行”,没错,就是实战!这次让我们一起来看看一些操作字符串的技巧,也许能引我们从不同的角度思考问题,从而走出思维的死角! LINQ 可用于查询和转换字符串和字符串集合.它对文本文件中的半结构化数据尤其有用.LINQ 查询可与传统的字符串函数和正则表达式结合使用. 例如,可以使用 Split 或 Split 方法来创建字

C# 操作字符串,在某些特定的字符后面或前面添加其它字符

C# 操作字符串,在某些特定的字符后面或前面添加其它字符,解决方法: 字符串替换或正则表达式替换即可. 示例:string s = @"第1种方案(约6站)在 泉城广场 坐 14路 到 按察司街北口/市立一院 换乘 11路/K109路 到 老东门第2种方案(约7站)在 泉城广场 坐 128路 到 朝山街北口/朝山街南口 换乘 36路 到 老东门第3种方案(约7站)在 泉城广场 坐 14路 到 大明湖东门 换乘 14路/30路/31路/36路/46路/83路/K98路 到 老东门第4种方案(约7站

编写高质量代码改善C#程序的157个建议[正确操作字符串、使用默认转型方法、却别对待强制转换与as和is]

前言 本文主要来学习记录前三个建议. 建议1.正确操作字符串 建议2.使用默认转型方法 建议3.区别对待强制转换与as和is 其中有很多需要理解的东西,有些地方可能理解的不太到位,还望指正. 建议1.正确操作字符串 字符串应该是所有编程语言中使用最频繁的一种基础数据类型.如果使用不慎,我们就会为一次字符串的操作所带来的额外性能开销而付出代价.本条建议将从两个方面来探讨如何规避这类性能开销: 1.确保尽量少的装箱 2.避免分配额外的内存空间 先来介绍第一个方面,请看下面的两行代码: String

js 实现动态key value(JSON字符串注意事项:key和value都要用双引号,官网指定用双引号)

1.JSON字符串注意事项:key和value都要用双引号,官网指定用双引号,如下: var mapStr='{"a":"a","b":"b"}'; var map=JSON.parse(mapStr); 如此通过拼接字符串,JSON解析获得KeyValue var str='a'; map[str];//输出a 2.也是通过拼接字符串方式获得keyvalue,使用eval方法解析成数组,注意是数组 var mapStr='[

操作字符串

public class OperationString { public static void main(String[] args) { String str[]=new String [4];//定义长度为4的字符串数组 str[0]="first"; str[1]="second"; StringBuffer sb1= new StringBuffer(str[0]);//利用字符串str[0]来构造一个StringBuffer,sb1内容为"f

简单操作字符串

使用javascript实现常用的字符串操作. 一,字符串按逗号分割装入数组,使用split()函数可以实现. var str=",,,,,,,,,,,abc,123,4cc,569,dfk,,,,,,,,"; function goArray(str){ var arr=[]; var s=""; var j=0; for(var i=0;i<str.length;i++){ if(str.charAt(i)!=','&&i!=str.len

Hadoop HDFS文件常用操作及注意事项

1.Copy a file from the local file system to HDFS The srcFile variable needs to contain the full name (path + file name) of the file in the local file system. The dstFile variable needs to contain the desired full name of the file in the Hadoop file s

JS常见操作,日期操作,字符串操作,表单验证等

复制代码 //第一篇博文,希望大家多多支持 /***** BasePage.js 公共的 脚本文件 部分方法需引用jquery库 *****/ //#region 日期操作 //字符串转化为时间. function stringtoTime(date1) { var dt = new Date(Date.parse(date1.replace(/-/g, "/"))); return dt; } // 使用 var date1 = "2013-06-08 15:23:31&q