Qual è la funzione effettiva dell'impostazione del progetto C # "Consenti codice non sicuro"

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

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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top