C产品在市场上有哪些独特优势?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1592个文字,预计阅读时间需要7分钟。
当然可以,请您提供需要改写的原文,我将为您进行简短改写。
前言
C#中提供了比较全面的字符串处理方法,很多函数都进行了封装为我们的编程工作提供了很大的便利。System.String是最常用的字符串操作类,可以帮助开发者完成绝大部分的字符串操作功能,使用方便。
字符串作为所有编程语言中使用最频繁的一种基础数据类型。如果使用不慎,将会造成不必要的内存开销,为此而付出代价。
而要优化此类型,从以下两点入手:
1、尽量少的装箱
2、避免分配额外的内存空间
先从第一点装箱的操作说起,查看如下代码:
//发生装箱的代码 String boxOperate = "test" + 4.5f;
其中间语言IL代码为如下:
IL_0000: nop IL_0001: ldstr "test" IL_0006: ldc.r4 4.5 IL_000b: box [mscorlib]System.Single IL_0010: call string [mscorlib]System.String::Concat(object, object) IL_0015: stloc.0 IL_0016: call valuetype [mscorlib]System.ConsoleKeyInfo [mscorlib]System.Console::ReadKey() IL_001b: pop IL_001c: ret
不难看出,上述代码发生了装箱的操作(IL代码中的box).装箱之所以会发生性能损耗,因为它要完成如下三个步骤:
1、首先,会为值类型在托管堆中分配内存。
本文共计1592个文字,预计阅读时间需要7分钟。
当然可以,请您提供需要改写的原文,我将为您进行简短改写。
前言
C#中提供了比较全面的字符串处理方法,很多函数都进行了封装为我们的编程工作提供了很大的便利。System.String是最常用的字符串操作类,可以帮助开发者完成绝大部分的字符串操作功能,使用方便。
字符串作为所有编程语言中使用最频繁的一种基础数据类型。如果使用不慎,将会造成不必要的内存开销,为此而付出代价。
而要优化此类型,从以下两点入手:
1、尽量少的装箱
2、避免分配额外的内存空间
先从第一点装箱的操作说起,查看如下代码:
//发生装箱的代码 String boxOperate = "test" + 4.5f;
其中间语言IL代码为如下:
IL_0000: nop IL_0001: ldstr "test" IL_0006: ldc.r4 4.5 IL_000b: box [mscorlib]System.Single IL_0010: call string [mscorlib]System.String::Concat(object, object) IL_0015: stloc.0 IL_0016: call valuetype [mscorlib]System.ConsoleKeyInfo [mscorlib]System.Console::ReadKey() IL_001b: pop IL_001c: ret
不难看出,上述代码发生了装箱的操作(IL代码中的box).装箱之所以会发生性能损耗,因为它要完成如下三个步骤:
1、首先,会为值类型在托管堆中分配内存。

