Есть ли причина System.Buffer.BlockCopy
принимает int
параметров вместо long
для смещения/длины копии? Потоки обычно работают с long
, почему BlockCopy
не имеет перегрузки, которая занимает long
, тоже?Почему System.Buffer.BlockCopy принимает int вместо long?
0
A
ответ
3
Поскольку до .NET 4.5 ни один объект не мог превышать 2 гигабайта. Поэтому нет причин иметь больше, чем int, чтобы представить длину.
Даже в .NET 4.5, хотя массив может иметь длину более 2 гигабайт, он не может содержать более 2^31 элементов. Таким образом, максимальный размер byte[]
по-прежнему составляет 2 гигабайта (минус немного накладных расходов). Максимальный размер int[]
составляет 2^31 элемента или около 8 гигабайт и т. Д. См. gcAllowVeryLargObjects.
+0
Ах, ладно спасибо за информацию. –
Смежные вопросы
- 1. Int вместо Long, ошибка?
- 2. Почему fgets принимает int вместо size_t?
- 3. метод не принимает long long int значение показывает ошибку
- 4. Преобразование long int * в long long int *
- 5. диапазон Scala возвращает Long вместо Int
- 6. unsigned long long int
- 7. Почему sizeof (int) == sizeof (long)?
- 8. Почему `__builtin _ {{s, u} {add, sub, mul} ll_overflow` дает результат` long int` вместо результата long long int?
- 9. C++: long long int vs. long int vs. int64_t
- 10. «long int», «long long» Типы данных
- 11. Unsigned long long int to long double
- 12. Почему система принимает без предупреждения long int передается как аргумент int?
- 13. Javascript: Define Long Int
- 14. Java Thread.sleep long или int?
- 15. читабельность long int v. Long
- 16. Arduino long long int doc
- 17. Метод Encrypt (long, long, long, long, int) в типе принца не применим для аргументов (String, long, long, long, int)
- 18. Почему второй unsigned long long int печатает другое значение?
- 19. Почему замена long long с int увеличивает производительность?
- 20. Как заставить `.andExpect (jsonPath()` возвращать long/long вместо int для int number для парсера jackson
- 21. C: ошибочный вывод для "(long long int) = (long long int) * (double)"?
- 22. Функция не возвращается long long int
- 23. Почему setFirstResult() в Query принимает параметр int?
- 24. Почему extern long int c не разрешен?
- 25. Почему TaskSpawn принимает ints вместо void *?
- 26. C# System.Buffer.BlockCopy Проблема с памятью?
- 27. Почему (String, Int) ожидается вместо (Char, Int)?
- 28. casting int to unsigned long long
- 29. Сокращенное название типа long long vs long long int, стандартно?
- 30. v [long long int] в C++
Для удобства вы можете использовать Array.Copy с индексом int64. Но это будет не так эффективно, как BlockCopy. – Todd