Alors que les autres réponses ne sont pas incorrectes, je me suis retrouvé avec le même problème. Dans mon cas, j'avais déclaré une énumération C++ standard et j'avais oublié d'utiliser la syntaxe CLI (même si j'avais été exposé dans des propriétés publiques sans les avertissements du compilateur!).
La syntaxe correcte pour un C++/CLI ENUM est (Notez le mot 'classe'):
public enum class SomeEnum {
Value1,
Value2
}
NB: Vous pouvez également utiliser 'struct' plutôt que 'classe'.
Vous aurez aussi besoin de revenir dans votre code et modifier les affectations (le compilateur sera heureux de vous les erreurs cependant) de celle-ci:
SomeEnum value = Value1;
à ceci:
SomeEnum value = SomeEnum::Value1;
Vous va maintenant trouver que 'ToString()' fonctionne comme vous l'attendez.
Je reçois "à gauche de .ToString() doit avoir class/struct/union" – CJBrew