Erro do compilador CS0459
Não é possível tomar o endereço de uma variável local somente leitura
Há três cenários comuns na linguagem C# que geram variáveis locais somente leitura: foreach
, using
e fixed
. Em cada um desses casos, você não tem permissão para gravar na variável local somente leitura ou para tomar seu endereço. Este erro é gerado quando o compilador percebe que você está tentando tomar o endereço de uma variável local somente leitura.
O exemplo a seguir gera CS0459 quando é feita uma tentativa de obter o endereço de uma variável local somente leitura em um foreach
loop e em um fixed
bloco de instrução:
// CS0459.cs
// compile with: /unsafe
class Program
{
public unsafe void M1()
{
int[] ints = new int[] { 1, 2, 3 };
foreach (int i in ints)
{
int *j = &i; // CS0459
}
fixed (int *i = &_i)
{
int **j = &i; // CS0459
}
}
private int _i = 0;
}
Nota
O compilador Roslyn foi atualizado e esse erro do compilador foi removido a partir do Visual Studio 2017 versão 15.5, portanto, o código anterior seria compilado com êxito com esta versão e posterior.
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: