Erreur du compilateur CS1546
Mise à jour : novembre 2007
Message d'erreur
La propriété, l'indexeur ou l'événement 'propriété' n'est pas pris en charge par le langage ; essayez d'appeler directement la méthode d'accesseur 'accesseur'
Property, indexer, or event 'property' is not supported by the language; try directly calling accessor method 'accessor'
Votre code consomme un objet ayant une propriété indexée par défaut et a tenté d'utiliser la syntaxe indexée. Pour corriger cette erreur, appelez la méthode d'accesseur de la propriété. Pour plus d'informations sur les indexeurs et les propriétés, consultez Indexeurs (Guide de programmation C#).
L'exemple suivant génère l'erreur CS1546.
Exemple
Il consiste en un fichier .cpp, qui se compile en un fichier .dll, et en un fichier .cs qui utilise ce fichier .dll. Le code suivant concerne le fichier .dll et définit une propriété du fichier .cs à laquelle il faut accéder par le code.
// CPP1546.cpp
// compile with: /clr /LD
using namespace System;
public ref class MCPP
{
public:
property int Prop [int,int]
{
int get( int i, int b )
{
return i;
}
}
};
Voici le fichier C#.
// CS1546.cs
// compile with: /r:CPP1546.dll
using System;
public class Test
{
public static void Main()
{
int i = 0;
MCPP mcpp = new MCPP();
i = mcpp.Prop(1,1); // CS1546
// Try the following line instead:
// i = mcpp.get_Prop(1,1);
}
}