bjr
dans nos projet en c++ on utilisaot bcp ce genre de macro
#define GET__ELEMENT(a) CElement *Courant = ::ListeElements->Elements; \
while(Courant) \
{\
if(dynamic_cast<a *>(Courant))\
if((dynamic_cast<a *>(Courant))->Numero == no)\
return (a *) Courant;\
Courant = Courant->Next;\
}\
return NULL;\
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrice
Bonjour,
Pas "out of the box". Il doit y avoir éventuellement des preprocesseurs tiers si l'on veut vraiment faire des macros. Sinon c'est normalement le compilateur qui est responsable de mettre le code "inline" si il le trouve opportun.
-- Patrice
"Maurice60" a écrit dans le message de groupe de discussion :
bjr dans nos projet en c++ on utilisaot bcp ce genre de macro #define GET__ELEMENT(a) CElement *Courant = ::ListeElements->Elements; while(Courant) { if(dynamic_cast<a *>(Courant)) if((dynamic_cast<a *>(Courant))->Numero == no) return (a *) Courant; Courant = Courant->Next; } return NULL;
peut-on faire la meme chose en c#? merci
Bonjour,
Pas "out of the box". Il doit y avoir éventuellement des preprocesseurs
tiers si l'on veut vraiment faire des macros. Sinon c'est normalement le
compilateur qui est responsable de mettre le code "inline" si il le trouve
opportun.
--
Patrice
"Maurice60" <Maurice60@discussions.microsoft.com> a écrit dans le message de
groupe de discussion : CD78F80A-0266-4B2B-A3DF-B6E8BCC69CB4@microsoft.com...
bjr
dans nos projet en c++ on utilisaot bcp ce genre de macro
#define GET__ELEMENT(a) CElement *Courant = ::ListeElements->Elements;
while(Courant)
{
if(dynamic_cast<a *>(Courant))
if((dynamic_cast<a *>(Courant))->Numero == no)
return (a *) Courant;
Courant = Courant->Next;
}
return NULL;
Pas "out of the box". Il doit y avoir éventuellement des preprocesseurs tiers si l'on veut vraiment faire des macros. Sinon c'est normalement le compilateur qui est responsable de mettre le code "inline" si il le trouve opportun.
-- Patrice
"Maurice60" a écrit dans le message de groupe de discussion :
bjr dans nos projet en c++ on utilisaot bcp ce genre de macro #define GET__ELEMENT(a) CElement *Courant = ::ListeElements->Elements; while(Courant) { if(dynamic_cast<a *>(Courant)) if((dynamic_cast<a *>(Courant))->Numero == no) return (a *) Courant; Courant = Courant->Next; } return NULL;
peut-on faire la meme chose en c#? merci
Christophe Lephay
"Maurice60" a écrit dans le message de groupe de discussion :
bjr dans nos projet en c++ on utilisaot bcp ce genre de macro #define GET__ELEMENT(a) CElement *Courant = ::ListeElements->Elements; while(Courant) { if(dynamic_cast<a *>(Courant)) if((dynamic_cast<a *>(Courant))->Numero == no) return (a *) Courant; Courant = Courant->Next; } return NULL;
peut-on faire la meme chose en c#?
L'opérateur as fonctionne comme le dynamic_cast (renvoie null si la conversion échoue).
En mot à mot, ça donne :
if (Courant is a) if ( (Courant as a).Numero == no) return (a)Courant; Courant = Courant.Next;
Sinon, on peut faire la conversion une seule fois :
a Courant_a = Courant as a; if (Courant_a != null && Courant_a.Numero == no) return Courant_a;
"Maurice60" <Maurice60@discussions.microsoft.com> a écrit dans le message de
groupe de discussion : CD78F80A-0266-4B2B-A3DF-B6E8BCC69CB4@microsoft.com...
bjr
dans nos projet en c++ on utilisaot bcp ce genre de macro
#define GET__ELEMENT(a) CElement *Courant = ::ListeElements->Elements;
while(Courant)
{
if(dynamic_cast<a *>(Courant))
if((dynamic_cast<a *>(Courant))->Numero == no)
return (a *) Courant;
Courant = Courant->Next;
}
return NULL;
peut-on faire la meme chose en c#?
L'opérateur as fonctionne comme le dynamic_cast (renvoie null si la
conversion échoue).
En mot à mot, ça donne :
if (Courant is a)
if ( (Courant as a).Numero == no)
return (a)Courant;
Courant = Courant.Next;
Sinon, on peut faire la conversion une seule fois :
"Maurice60" a écrit dans le message de groupe de discussion :
bjr dans nos projet en c++ on utilisaot bcp ce genre de macro #define GET__ELEMENT(a) CElement *Courant = ::ListeElements->Elements; while(Courant) { if(dynamic_cast<a *>(Courant)) if((dynamic_cast<a *>(Courant))->Numero == no) return (a *) Courant; Courant = Courant->Next; } return NULL;
peut-on faire la meme chose en c#?
L'opérateur as fonctionne comme le dynamic_cast (renvoie null si la conversion échoue).
En mot à mot, ça donne :
if (Courant is a) if ( (Courant as a).Numero == no) return (a)Courant; Courant = Courant.Next;
Sinon, on peut faire la conversion une seule fois :