Im essayant de faire un analyseur universel en utilisant des paramètres de type générique, mais je ne peux pas saisir le concept 100%paramètres de type générique utilisant des
private bool TryParse<T>(XElement element, string attributeName, out T value) where T : struct
{
if (element.Attribute(attributeName) != null && !string.IsNullOrEmpty(element.Attribute(attributeName).Value))
{
string valueString = element.Attribute(attributeName).Value;
if (typeof(T) == typeof(int))
{
int valueInt;
if (int.TryParse(valueString, out valueInt))
{
value = valueInt;
return true;
}
}
else if (typeof(T) == typeof(bool))
{
bool valueBool;
if (bool.TryParse(valueString, out valueBool))
{
value = valueBool;
return true;
}
}
else
{
value = valueString;
return true;
}
}
return false;
}
Comme vous pouvez le deviner, le code ne compile pas, depuis Je ne peux pas convertir int | bool | string en T (par exemple, value = valueInt). Merci pour vos commentaires, il pourrait même ne pas être possible de le faire. Utilisation de .NET 3.5
Wow, bonne question. Ce soir, quand j'aurai le temps d'y revenir, je vais remettre en question toutes les réponses crédibles. –