Je pense que je me suis surpassé cette fois-ci. N'hésitez pas à éditer le titre aussi je ne pourrais pas penser à un bon. Je lis d'un fichier et ensuite dans ce fichier sera une chaîne parce que c'est comme un fichier XML. Mais dans le fichier sera une valeur littérale ou une « commande » pour obtenir la valeur de la workContainerUtilisation de Generics pour renvoyer une chaîne littérale ou de Dictionary <string, object>
si
<Email>[email protected]</Email>
ou
<Email>[? MyEmail ?]</Email>
Ce que je voulais faire au lieu de ifs d'écriture dans tous les sens pour le mettre dans une fonction générique
si la logique est
If Container command grab from container else grab string and convert to desired type
Its up to the user to ensure the file is ok and the type is correct
donc un autre exemple est
si
<Answer>3</Answer>
ou
<Answer>[? NumberOfSales ?]</Answer>
C'est la procédure que j'ai commencé à travailler sur
public class WorkContainer:Dictionary<string, object>
{
public T GetKeyValue<T>(string Parameter)
{
if (Parameter.StartsWith("[? "))
{
string key = Parameter.Replace("[? ", "").Replace(" ?]", "");
if (this.ContainsKey(key))
{
return (T)this[key];
}
else
{
// may throw error for value types
return default(T);
}
}
else
{
// Does not Compile
if (typeof(T) is string)
{
return Parameter
}
// OR return (T)Parameter
}
}
}
L'appel serait
mail.To = container.GetKeyValue<string>("[email protected]");
ou
mail.To = container.GetKeyValue<string>("[? MyEmail ?]");
int answer = container.GetKeyValue<int>("3");
ou
answer = container.GetKeyValue<int>("[? NumberOfSales ?]");
Mais il ne compile pas?
Quelle erreur de compilation que vous obtenez? –