Comment permettre la conversion implicite?

Donné un peu de code comme ceci:

class Json
{
}

class Program
{
    static void Main(string[] args)
    {
    }

    Json MyAction()
    {
        return "{\"json\": 1}";
    }
}

Est-ce que je peux ajouter à la Json classe pour faire de cette compilation? Quelque chose qui permet au compilateur de savoir qu'il peut implicitement convertie en une chaîne Json?

  • Je voudrais ajouter un .ToJson() méthode d'extension au lieu de surcharger le implicit opérateur puisque ce genre de conversion implicite viole certaines lignes directrices importantes(voir Saeed réponse). En particulier, il peut jeter, n'est pas sans perte et a étrange de la sémantique dans les comparaisons.
  • Je peux pas jeter 🙂 Mon plus gros souci ici c'est que l'action renvoie simplement un autre type, afin de les différencier à partir d'une chaîne, même si sinon il peut agir parfaitement comme une chaîne de caractères. De cette façon, je sais qui ContentType de jeu sans avoir à faire aucun travail supplémentaire (il suffit de régler le type de retour de la fonction de façon appropriée).
InformationsquelleAutor mpen | 2011-01-02