c# - ¿Hay algún punto para evitar el uso de "inseguro" en Mono?
unsafe (1)
Recientemente me he enterado del hecho de que necesito especificar la opción "inseguro" cuando trabajo con ciertos conceptos en C # / Mono. No solo tengo que especificar la opción en mi código, también debo especificarlo al compilarlo, lo que invoca la sensación de que "este código es intrínsecamente inseguro y riesgoso de usar". Lo extraño es que DllImport no necesita la marca insegura, por lo que puedo crear segfaults todo lo que quiero en mi "código de seguridad". ¿Hay alguna razón para evitar el código inseguro que he pasado por alto?
DllImport es un concepto bien conocido para la mayoría de los desarrolladores de C #. También resulta en un área relativamente pequeña donde podría ocurrir el segfault. Con el código unsafe
, puede crear bloqueos aleatorios mucho más fácilmente y en lugares no relacionados con la llamada unsafe
(manipulando regiones de memoria fuera de lo que creía que estaba tocando).
Es muy parecido a las advertencias del compilador: algunos desarrolladores no les prestan atención, algunos convierten "Tratar advertencias como errores" en "Todos". ¿Adivina qué resultados en el código es más fácil de mantener?
Además, DllImport en sí mismo no es una buena idea si se puede evitar (debido a problemas potenciales de rotura / errores perdidos / portabilidad, etc.).