Partager via


Erreur du compilateur C3364

'délégué' : constructeur délégué : l’argument doit être pointeur vers la fonction membre de la classe managée ou de la fonction globale

Le deuxième paramètre du constructeur du délégué prend l’adresse d’une fonction membre ou l’adresse d’une fonction membre statique de n’importe quelle classe. Les deux sont traités comme des adresses simples.

L’exemple suivant génère l’erreur C3364 :

// C3364_2.cpp
// compile with: /clr

delegate int D( int, int );

ref class C {
public:
   int mf( int, int ) {
      return 1;
   }
};

int main() {
   C^ pC = gcnew C;
   System::Delegate^ pD = gcnew D( pC,pC->mf( 1, 2 ) ); // C3364

   // try the following line instead
   // System::Delegate^ pD = gcnew D(pC, &C::mf);
}