J'ai une classe comme celle-ci. Je voudrais avoir la conversion de type automatique sur elle donc je peux l'utiliser comme une chaîne. Fonction d'appel avec conversion de type implicite
public class ForeignKey {
public string Id {get;}
public TableA TableA {get;}
public TableB TableB {get;}
public static implicit operator string(ForeignKey obj){ return obj.Id; }
public override string ToString() { return Id; }
/* various operator overloads */
}
Ce que j'ai fait jusqu'ici me permet de l'utiliser dans un certain nombre d'endroits sans une distribution explicite. Cependant, je n'arrive pas à trouver un moyen d'appeler des fonctions de chaîne sans faire une distribution explicite. Par exemple, j'aimerais que cela fonctionne. Par exemple, j'aimerais que cela fonctionne.
if (Key.EndsWith(someValue))
Actuellement je dois faire
if (((string)Key).EndsWith(someValue))
// or
if (Key.Id.EndsWith(someValue))
est-il un moyen de faire fonctionner ce que je veux?
Merci
Key.Id est déjà une chaîne. Votre dernière option Key.Id.EndsWith (someValue) devrait fonctionner automatiquement. – Amit
Vous pouvez créer une méthode d'extension C# pour cela avec la signature en tant que KeyValue statique publique (cette touche Key) {} – Amit
À droite, Key.Id.EndsWith fonctionne mais j'aimerais que Key.EndsWith fonctionne. –