Qual è la funzione effettiva dell'impostazione del progetto C # "Consenti codice non sicuro"
Domanda
Mi chiedevo se l'impostazione del progetto C # " Consenti codice non sicuro " si applica solo al codice C # non sicuro nel progetto stesso o è necessario impostare questa opzione quando si collega in una DLL C ++ nativa? Che dire del collegamento in una DLL gestita che si collega a una DLL nativa? Cosa fa davvero questa opzione, sotto il cofano?
Soluzione
Ha a che fare con il "non sicuro" parola chiave in C #. & Quot; sicuri " disattiva tutti i controlli che si verificano normalmente e consente di accedere direttamente alla memoria. non si riferisce al richiamo di DLL o interfacce C ++ native.
Altri suggerimenti
Ti consente di utilizzare il " unsafe " blocco.
unsafe(...)
{
}
Questo riguarda solo l'uso dei blocchi non sicuri
(dove è possibile utilizzare i puntatori). Non disciplina P / Invoke.
È necessario utilizzare il contesto {} non sicuro. Prima era necessario usare sizeof () ma nelle versioni successive non è più vero.
Non è necessario consentire il codice non sicuro se si esegue l'esternazione a un'altra DLL scritta in un'altra lingua come C.