看完What's the rationale for null terminated strings?和一些类似的问题,我发现在 C#/.NET 中,字符串在内部都是长度前缀和 null 终止的,就像在 BSTR Data Type 中一样。 .
字符串是长度前缀和 null 终止而不是 eg 的原因是什么?只有长度前缀?
最佳答案
长度前缀使得计算长度为O(1)
。
Null 终止使编码到非托管的速度非常快(非托管可能需要以 null 终止的字符串)。
关于c# - 为什么 C#/.NET 字符串以长度为前缀并以 null 结尾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6293457/