Erreur du compilateur CS0459
Impossible de prendre l'adresse d'une variable locale en lecture seule
En langage C#, trois scénarios communs génèrent des variables locales en lecture seule : foreach
, using
et fixed
. Dans chacun de ces cas, vous n’êtes pas autorisé à écrire dans la variable locale en lecture seule ou à prendre son adresse. Cette erreur est générée lorsque le compilateur se rend compte que vous essayez de prendre l’adresse d’une variable locale en lecture seule.
L’exemple suivant génère l’erreur CS0459 lorsqu’une tentative est effectuée pour prendre l’adresse d’une variable locale en lecture seule dans une boucle foreach
et dans un bloc d’instructions fixed
:
// 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;
}
Notes
Le compilateur Roslyn a été mis à jour et cette erreur de compilateur a été supprimée à partir de Visual Studio 2017 version 15.5. Le code précédent est donc bien compilé avec cette version et versions ultérieures.
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :