c# - 为什么 C#/.NET 字符串以长度为前缀并以 null 结尾?

标签 c# .net string bstr null-terminated

看完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/

相关文章:

C#将不同类型的xml数组反序列化为多个数组

c# - 在某些情况下,如何在需要空指针的 P/Invoke 签名中使用 SafeHandle?

string - VBA比较字符串(检查字符串1是否包含字符串2)

.net - 调用 DirectorySearcher.FindOne() 且 AD 不可用时抛出什么异常?

java - 两个看似相等的字符串并不相等

java - ASCII-错误消息,找不到符号

c# - 调用 GetApplicationDefaultAsync() 时发生 AggregateException

C# Generic List of Multiple Types 泛型列表

c# - 我可以延长 session 或实例或控制GC的生命周期吗?

c# - 在 C# 中实例化 System.Xml.Serialization.XmlSerializer 时发生崩溃