J'ai une application qui utilise System::String
géré dans les éléments de l'interface utilisateur, mais fait référence au code non géré (read: legacy) pour le calcul plus complexe.Comment comparer les chaînes gérées et non gérées?
De plus, il n'y a pas un codage cohérent pour les chaînes - chaînes gérées peuvent être soit "strings"
régulière ou Unicode L"strings"
et les chaînes ONU gérés sont disponibles dans toutes char *, wchar_t *, std::string, std::wstring
variétés.
Quelle est la meilleure façon de comparer les différentes saveurs de chaînes? J'espère que je peux le faire sans avoir à mettre en œuvre une demi-douzaine de méthodes de comparaison comme
int compare(System::String^s1, char * s2);
int compare(System::String^s1, wchar_t * s2);
int compare(System::String^s1, std::string s2);
int compare(System::String^s1, std::wstring s2);
int compare(char * s1, System::String^s2);
int compare(wchar_t * s1, System::String^s2);
...
L'objectif principal sera les comparaisons d'égalité, donc si ceux-ci sont beaucoup plus faciles à faire, alors je voudrais voir les réponses aussi bien.
est-il une raison particulière de choisir de faire la comparaison using System :: chaîne sur l'une des alternatives? Je n'ai aucune idée si l'utilisation de chaînes de style C serait mieux, mais je ne peux pas imaginer que ce soit pire. – MikeD