Qual é a diferença entre fixo e inseguro
Pergunta
Por que existem 2 maneiras diferentes bloqueio de memória no lugar em .NET? Qual é a diferença entre eles?
Solução
A declaração fixa é utilizada no contexto da inseguro modificador . Inseguro declara que você vai usar a aritmética de ponteiro (por exemplo: chamada de API de baixo nível), que é fora das operações normais C #. A declaração fixo é utilizado para bloquear a memória em lugar para que o coletor de lixo não vai realocar-lo enquanto ele ainda está em uso. Você não pode usar a instrução fixo fora do contexto inseguro.
Exemplo
public static void PointyMethod(char[] array)
{
unsafe
{
fixed (char *p = array)
{
for (int i=0; i<array.Length; i++)
{
System.Console.Write(*(p+i));
}
}
}
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow