Hacker News new | ask | show | jobs
by munificent 4149 days ago
Presumably because it's not worth the memory hit to store the hash.
1 comments

That was my assumption, too. They do memoize the length, but I'm sure those bytes add up, having run into OutOfMemoryExceptions building huge amounts of strings before.
Strings know their length in the CLR because they are represented as BSTRs

http://blogs.msdn.com/b/ericlippert/archive/2011/07/19/strin...

This lets them interoperate with OLE Automation.

You have to store the length, C# strings can contain '\0' (although the hashing code doesn't take this into account!)