Procédure avec paramètres renseignés dynamiquement [Résolu]

Signaler
Messages postés
1
Date d'inscription
samedi 13 novembre 2010
Statut
Membre
Dernière intervention
14 novembre 2010
-
Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
-
Je voudrais créer une procédure que je pourrais appeler comme ci-dessous :

extraString myObject = new extraString();
string myString = ?Le fichier %1 ne peut pas être supprimé par l'utilisateur %2. Le fichier %1 est bloqué par un autre utilisateur.?;
myObject.StrBuild(myString, ?test.txt?, ?John Citizen?);


je voudrais avoir la possibilité de passer autant de paramètre que possible et donc remplacer tous les % par les paramètres passés.

Quelque chose dans cet esprit là :

    class extraString
    {
        public string StrBuild(string stringToBuild, string param1)
        {
            StringBuilder objBuilder = new StringBuilder(stringToBuild);
            objBuilder.Replace("%1", param1);
            return objBuilder.ToString();
        }
        public string Strbuild(string stringToBuild, string param1, string param2)
        {
            StringBuilder objBuilder = new StringBuilder(stringToBuild);
            objBuilder.Replace("%1", param1);
            objBuilder.Replace("%2", param2);
            return objBuilder.ToString();
        }
? 
        public string Strbuild(string stringToBuild, string param1, string param2, ?, string param20)
        {
            StringBuilder objBuilder = new StringBuilder(stringToBuild);
            objBuilder.Replace("%1", param1);
            objBuilder.Replace("%2", param2);
            ?
objBuilder.Replace("%20", param20);
            // return the constructed string
            return objBuilder.ToString();
        }
    }


Comment pourrais-je le réaliser en passant des paramètres dynamiquement sans réécrire 20 fois les mêmes procédures avec juste un paramètre en plus à chaque fois.

J'espère avoir été assez clair dans ma question.
Merci d'avance.


Clément.

1 réponse

Messages postés
834
Date d'inscription
samedi 15 novembre 2008
Statut
Membre
Dernière intervention
14 janvier 2017
29
Oui merci, bien le bonjour à toi aussi

utilise params qui permet d'indiquer une liste de parametres variable

ex:

public string Strbuild(string stringToBuild, params object[] parametres)
{
    for (int i = 0; i < parametres.Length; i++ )
    {
        stringToBuild = stringToBuild.Replace("%" + (i + 1).ToString(), parametres[i].ToString());
    }
    return stringToBuild;
}


et à l'appel:
Strbuild("test %1 %2 %3%4%5%6%7%8%9%10",1,"2",3,'4',5,6,"7",8,9,10);


Bon code
Bob

C# is amazing, enjoy it!