Comment puis-je faire le type de retour d'une méthode générique?

Est-il un moyen de rendre cette méthode générique pour que je puisse retourner un string, bool, int, ou double? Maintenant, elle retourne une chaîne de caractères, mais si elle est en mesure de trouver des "vrais" ou "faux" comme la valeur de configuration, j'aimerais retourner un booléen par exemple.

    public static string ConfigSetting(string settingName)
    {  
         return ConfigurationManager.AppSettings[settingName];
    }
  • Est-il un moyen pour vous de savoir quel type de chaque paramètre est?
  • Je pense que la question que vous voulez vraiment à se poser est "Comment puis-je faire ma demande de config fortement typées?" Ça fait trop longtemps depuis que j'ai travaillé avec des que pour écrire une réponse.
  • Yah, idéalement, je ne veux pas avoir à passer le type dans la méthode. Je vais seulement avoir les 4 types que j'ai mentionnés. Donc, si "true"/"false" est réglé, je veux que cette fonction pour retourner un booléen (sans avoir besoin de passer dans la méthode), je peux probablement combiner int et double en double, et tout le reste doit être une chaîne de caractères. Qu'est-ce que déjà répondu fonctionne correctement, mais j'ai besoin de passer le taper à chaque fois, ce qui est probablement très bien.
  • Votre commentaire semble que vous allez avoir une méthode qui retourne un typage fort bool (ou string ou int, ou qu'avez-vous) lors de l'exécution sur la base des données extraites pour le nom du paramètre clé. C# ne pas le faire pour vous; il n'y a aucun moyen de savoir le type de cette valeur au moment de la compilation. En d'autres termes, c'est la dynamique de frappe, pas de typage statique. C# peut le faire pour vous si vous utilisez le dynamic mot-clé. Il y a un coût à ça, mais à la lecture d'un fichier de configuration, la performance coût est presque certainement insignifiant.
InformationsquelleAutor MacGyver | 2012-03-21