이유는 없습니까? System.Buffer.BlockCopy
은 복사본의 오프셋/길이에 대해 long
대신 int
매개 변수를 사용합니까? 일반적으로 스트림은 long
으로 작동합니다. BlockCopy
에는 long
이 필요한 오버로드가없는 이유는 무엇입니까?System.Buffer.BlockCopy가 long 대신 int를 사용하는 이유는 무엇입니까?
0
A
답변
3
.NET 4.5 이전에는 개체가 2 기가 바이트를 초과 할 수 없었습니다. 그래서 그 길이를 나타내는 int 이상이 될 이유가 없었습니다.
.NET 4.5에서도 배열의 길이가 2GB를 넘을 수는 있지만 2^31 개를 초과 할 수는 없습니다. 따라서 byte[]
의 최대 크기는 여전히 2GB입니다 (약간의 오버 헤드는 아님). int[]
의 최대 크기는 2^31 항목 또는 약 8 기가 바이트입니다. gcAllowVeryLargObjects을 참조하십시오.
+0
아, 알았어 정보 주셔서 감사합니다. –
관련 문제
- 1. GreenDao int 대신 int를 사용하는 이유는 무엇입니까?
- 2. guava - InetAddress.coerceToInteger는 long 대신 int를 반환합니다.
- 3. Java : long 및 int를 사용하는 정밀도 오류
- 4. .NET에서 특정 클래스에서 uint 대신 int를 사용하는 이유는 무엇입니까?
- 5. struct에서 long int를 사용하는 bitfields 이상한 동작
- 6. int를 long 포인터로 캐스팅
- 7. int를 Pk에 할당하기 [Long]
- 8. 곱셈에서 long int를 사용하면 이상한 숫자가 생성되는 이유는 무엇입니까?
- 9. 2 개의 long long int를 올바르게 곱하는 방법은 무엇입니까?
- 10. Random.Next()가 uint 대신 int를 반환하는 이유는 무엇입니까?
- 11. long long 부호없는 int를 반환하는 함수의 반환 값이 올바르지 않습니다.
- 12. RandomAccessFile이 int를 오프셋으로 사용하는 이유
- 13. 간단한 대답 대신 허수를 사용하는 이유는 무엇입니까?
- 14. C++ : cout을 사용하여 long long int를 올바르게 인쇄하는 방법
- 15. pthread_create가 int를 반환하는 이유는 무엇입니까?
- 16. 부호에 int를 사용하는 요점은 무엇입니까?
- 17. Java는 long int에 두 개의 int를 저장한다.
- 18. Python long int를 파일에 이진 값으로 작성
- 19. 부호없는 long int를 QVariant로 변환하는 방법
- 20. C에서 long int를 위해 오버플로를 잡는 방법?
- 21. int를 사용할 수있을 때 왜 byte, double, long 등을 사용합니까?
- 22. Singelton 패턴 대신 Zend_Registry를 사용하는 이유는 무엇입니까?
- 23. 누군가 C++ 대신 C를 사용하는 이유는 무엇입니까?
- 24. 함수 대신 템플릿을 사용하는 이유는 무엇입니까?
- 25. Node에서 cluster 대신 child_process를 사용하는 이유는 무엇입니까?
- 26. CompositionTarget.Rendering이 RenderingEventArgs 대신 EventArgs를 사용하는 이유는 무엇입니까?
- 27. 줄 바꿈 대신 공백을 사용하는 이유는 무엇입니까?
- 28. 일반 MySQL 대신 ROLAP을 사용하는 이유는 무엇입니까?
- 29. LINQ에서 FirstOrDefault 대신 First를 사용하는 이유는 무엇입니까?
- 30. String 대신 char []를 사용하는 이유는 무엇입니까?
편의를 위해 Array.Copy와 int64 색인을 함께 사용할 수 있습니다. 그러나 BlockCopy만큼 효율적이지는 않습니다. – Todd