Comment puis-je faire en sorte que cette fonction jette fiable sourceValue au type T où sourceValue est booléen et T est int?Convertir bool à T où T est int
public static T ConvertTo<T>(Object sourceValue) { // IF IS OF THE SAME TYPE --> RETURN IMMEDIATELY if (sourceValue is T) return (T) sourceValue; var val = ConvertTo(sourceValue, typeof (T)); return (T) val; }
Actuellement, cela jette un InvalidCastException en essayant de convertir faux à 0 et fidèle à 1. Les types ne sont pas prédéfinis, ce qui explique pourquoi les médicaments génériques doivent être utilisés ici. Cependant, le seul cas où il échoue est lorsque T: Int32 et sourceValue: Boolean.
Juste curieux, mais pourquoi voulez-vous utiliser une méthode autonome pour cela? Si 'b' est un' bool', faites juste 'int x = b? 1: 0; – bcat
Je pense qu'il est à la recherche d'une solution générique, mais cette affaire "edge" ne va pas. – spender
Probablement. Je ne vois tout simplement pas de cas d'utilisation pour une méthode de conversion générique. Je ne dis pas que ce n'est pas valable, je ne peux pas y penser pour le moment. – bcat