Se servir d'un string comme attribut

nxtreme Messages postés 26 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 8 septembre 2010 - 8 sept. 2010 à 14:18
othmane1950 Messages postés 33 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 7 octobre 2010 - 12 sept. 2010 à 01:26
Bonjour,

j'expose le problème avec un exemple pour illustrer:

private void maFonction(string str)
{
if (monObjet.str == "String") { ... }
}
(c'est faux bien entendu!)

Je voudrais que le string que l'on entre dans la fonction MaFonction puisse etre interprétée comme un attribut (qui existe quand j'ai contruit l'objet monObjet).

EN gros si je fais: maFonction("ouvrir"); je voudrais que le framework comprenne
if (monObjet.ouvrir == "string") { ... }

Voilà je crois qu'en VB on utiliserait monObjet.Control(str); mais en C# je sais pas faire...

Merci.

5 réponses

othmane1950 Messages postés 33 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 7 octobre 2010
8 sept. 2010 à 17:48
Bonjour,

Je ne sais pas si ça existe ou non… en tout cas tu peux faire la chose suivante :

private void maFonction(string arg0)
{
if (arg0==”str”{ // on fait appel à la method str de l’objet ‘monObjet’
if (monObjet.str == "String") { ... }
}//Fin If
}

Cordialement.
Ro_Ot-m@n.
0
othmane1950 Messages postés 33 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 7 octobre 2010
8 sept. 2010 à 17:48
” == "
0
nxtreme Messages postés 26 Date d'inscription mardi 29 avril 2003 Statut Membre Dernière intervention 8 septembre 2010
8 sept. 2010 à 18:15
Hum non c'est pas vraiment ca.
Y'a pas de methode str dans monObjet, il faut que l'attribut soit variable et puisse être contrôlé via la fonction:

Imaginons par exemple que monObjet ait les méthodes suivantes: "ouvrir", "fermer", "pousser" et des milliers d'autres.
je voudrais que le string que j'entre dans ma fonction soit entendu comme un attribut

maFonction("ouvrir"); correspondrait à une action sur monObjet.ouvrir

si j'entre maFonction("partir"); ca initilise l'objet monObjet.partir = ...

je peux le faire manuellement mais c'est long et c'est pas dynamique surtout.
0
yohan49 Messages postés 380 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 13 août 2011 7
9 sept. 2010 à 04:01
salut

dans ton object tu met une Dictionary contenat en key le nom de la fonction a appeler par exemple ouvrir

et en value un object contenant un object avec un event

exemple rapide :

[code=cs]public class MonObject
{
internal Dictionary<String, ToolBarRegion> RegionTool = new Dictionary<String, ToolBarRegion>();

public MonObject()
{
RegionTool.Add("OUVRIR", new ToolBarRegion());
RegionTool["OUVRIR"].OnClick += new ToolBarRegionEventHandler(RegionOUVRIR_Click);
RegionTool["OUVRIR"].Text = "ce que tu veux";
}
private void RegionOUVRIR_Click()
{
MessageBox.Show("hello");
}

public void execute(String code)
{
if(RegionTool.Contains(code))
RegionTool
.RaizeRequire();
    }
}

internal delegate void ToolBarRegionEventHandler();
internal class ToolBarRegion
{
    public string Text;
    public event ToolBarRegionEventHandler OnRequire;
    public void RaizeRequire()
    {
         if (OnRequire != null)
              OnRequire();
    }
}

#endregion



bon j'ai tapé ca vite fait ici y'a peut etre des erreurs de frappe mais le code est bon :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
othmane1950 Messages postés 33 Date d'inscription lundi 3 avril 2006 Statut Membre Dernière intervention 7 octobre 2010
12 sept. 2010 à 01:26
hum je vois ce que tu veux dire, ce que j'ai dis dans mon premier msg fait référence à la même chose, sauf que c'est pas dynamique, autant de méthode que t'aura, autant de condition t'aura...
la solution proposer par yohan me semble un peux dynamique pour ce que tu veux... reste à voir si cela fonctionne, car la chose dont t'aura besoin est quelque chose du genre type(key,value)

pour le type Dictionary ça prend key de type string et value de type object... va voir si cela va fonctionner avec les méthodes...

tu laisse stp un commentaire si tu trouve une solution à ton problème pour les futurs visiteur...
0
Rejoignez-nous