No entendí qué es IntPtr, ¿podría alguien explicar esto? gracias¿Qué es intptr?
Respuesta
Es la contraparte administrada de void*
.
Puede convertir desde y hacia void*
para usar en código administrado sin tener que recurrir a códigos inseguros en capas administradas, p. Ej. C#.
Es un número entero que tiene el mismo tamaño que un puntero. 32 bits de ancho en imágenes de 32 bits, 64 de ancho en imágenes de 64 bits.
Al menos pretenda responder la pregunta copiando y pegando la información relevante de los documentos. Un enlace no es suficiente para calificar como una respuesta. –
Quería mostrarle al autor cuán trivial es encontrar respuesta a esa pregunta. – Xorty
Bueno, las respuestas de la gente aquí son mucho más claras que el msdn que he intentado leer antes de formular la pregunta. Gracias por el esfuerzo y la buena voluntad de todos modos. –
Una caja negra del tamaño de puntero. A veces tiene idiomas que no admiten códigos/punteros inseguros, y por lo tanto necesita utilizar IntPtr en la API.
Creo que se ha reducido su uso desde .net 2, ya que muchos de sus estuches de uso son más aptos para manillas seguras.
Es un tipo específico de plataforma .NET que se utiliza para representar un puntero o un identificador.
El tipo IntPtr está diseñado para ser un número entero cuyo tamaño es específico de la plataforma. Es decir, se espera que una instancia de este tipo sea de 32 bits en hardware y sistemas operativos de 32 bits y 64 bits en hardware y sistemas operativos de 64 bits.
El tipo IntPtr puede ser utilizado por los lenguajes que admiten punteros, y como un medio común de referirse a los datos entre idiomas que admiten punteros y no los admiten.
Los objetos IntPtr también se pueden utilizar para mantener identificadores. Por ejemplo, las instancias de IntPtr se usan ampliamente en la clase System.IO.FileStream para contener identificadores de archivo.
(de MSDSN)
Cuando cita una fuente externa, otorgue crédito. –
Esto es sobre el C y C++ intptr_t tipo pero el principio es el mismo. What is uintptr_t data type
- 1. ¿Qué son las asas? IntPtr
- 2. ¿Por qué usar IntPtr para manejarlo?
- 3. C# punteros vs IntPtr
- 4. IntPtr vs ref C#
- 5. IntPtr vs UIntPtr
- 6. ¿Es posible obtener un IntPtr desde una matriz int []?
- 7. C# Convertir IntPtr en int
- 8. ¿por qué no es posible comparar IntPtr.Zero y por defecto (IntPtr)?
- 9. nueva IntPtr (0) vs. IntPtr.Zero
- 10. IntPtr, SafeHandle y HandleRef - Explicación
- 11. Cómo liberar IntPtr en C#?
- 12. Cómo convertir IntPtr en byte *
- 13. int vs IntPtr cuando tiene un controlador?
- 14. ¿Puedo usar SafeHandle en lugar de IntPtr?
- 15. IntPtr de matriz de bytes y Back
- 16. ¿Por qué SafeHandle.DangerousGetHandle() es "peligroso"?
- 17. El parámetro es incorrecto. en MS.Internal.XcpImports.MethodEx (IntPtr ptr, String name, CValue [] cvData)
- 18. hacen IntPtr en C# .NET punto de valor de cadena
- 19. C# desasignar memoria a la que hace referencia IntPtr
- 20. Cómo convertir IntPtr al objeto nativo de C++
- 21. No se puede agregar un IntPtr y un Int
- 22. Obtener Window handle (IntPtr) de Selenium webdriver ventana actual GUID
- 23. Convierta un identificador de ventana IntPtr a IWin32Window^
- 24. ¿Cómo puedo convertir un tipo IntPtr no administrado en una cadena C#?
- 25. ¿Cómo se puede convertir un objeto UIntPtr a IntPtr en C#?
- 26. ¿Se puede convertir IntPtr en una matriz de bytes sin hacer un Marshal.Copy?
- 27. ¿Cómo reconocer qué es y qué no es recursividad final?
- 28. ¿Qué es y qué no es una historia de usuario?
- 29. ¿Qué es "matemática de cuerdas" y por qué es malo?
- 30. ¿Qué es WebIDL y (por qué) es importante?
Ver también: [¿Qué es exactamente un IntPtr?] (Http://stackoverflow.com/questions/1148177/just-what-is-an-intptr-exactly). –