Здравствуйте, mr_unknowns, Вы писали:
_>И так внимание вопрос, что это за странная проверка:
Там же есть комментарий, который всё и объясняет:
// Note that we may not catch all overflows with this check (since we could have wrapped around the 4gb range any number of times
// and landed back in the positive range.) The input array might be modifed from other threads,
// so we have to do an overflow check before each append below anyway. Those overflows will get caught down there.
То есть, если значение отрицательное, это означает переполнение — длина новой строки уж точно больше 2-х гигабайт — и памяти не хватит. Может, конечно, и хватить, но строки длиннее int.MaxValue создавать нельзя (свойство string.Length имеет тип int).
... << RSDN@Home 1.2.0 alpha 4 rev. 1419>>