【发布时间】:2015-02-27 03:22:18
【问题描述】:
这是一个例子。假设我想使用String.Split() 方法在多个分隔符上拆分一个字符串。以下是我要用 C# 编写的内容:
myString.Split(new [] { ',', ';', ':' }, StringSplitOptions.RemoveEmptyEntries)
现在,函数的实际参数是一个常量数组(即在编译/JIT 时已知)值,并且至少在语法上,每次计算表达式时都会分配这个数组。
CLR 中是否有一种魔法(或优化,如果你不相信魔法的话)可以避免每次都分配和初始化数组,还是每次执行这段代码时都真的构造了数组?我在广义上询问 CLR,如果有这样的事情,也狭隘地询问微软在 .NET 中的具体实现。
【问题讨论】:
标签: .net arrays memory-management clr