¿Cuál es la función real de la configuración del proyecto C # "Permitir código inseguro"

StackOverflow https://stackoverflow.com/questions/233759

Pregunta

Me preguntaba si la configuración del proyecto C # " Permitir código no seguro " solo se aplica al código C # inseguro en el proyecto en sí, o ¿es necesario configurar esta opción cuando se vincula en una DLL nativa de C ++? ¿Qué pasa con la vinculación en una DLL administrada que se vincula a una DLL nativa? ¿Qué hace realmente esta opción, bajo el capó?

¿Fue útil?

Solución

Tiene que ver con el " inseguro " palabra clave en C #. " inseguro " desactiva todas las comprobaciones que normalmente sucederían y le permite acceder directamente a la memoria. no se refiere a llamar a DLL o interfaces C ++ nativas.

Otros consejos

Le permite usar el " inseguro " bloque.

unsafe(...)
{
}

Esto solo se relaciona con el uso de bloques inseguros (donde se pueden usar punteros). No rige P / Invocar.

Es necesario usar el contexto inseguro {}. Solía ??ser necesario usar sizeof () pero en versiones posteriores ya no es cierto.

No necesita permitir código inseguro si está exterminando a otra DLL escrita en otro idioma como C.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top