Étant donné un code comme ceci:Comment autoriser la conversion implicite?
class Json
{
}
class Program
{
static void Main(string[] args)
{
}
Json MyAction()
{
return "{\"json\": 1}";
}
}
Est-ce que je peux ajouter à la classe Json
pour faire de cette compilation? Quelque chose pour laisser le compilateur savoir qu'il peut implicitement jeter une chaîne à un Json?
J'ajouterais une méthode d'extension '.ToJson()' au lieu de surcharger l'opérateur 'implicit' puisque ce genre de conversion implicite constitue une violation des directives importantes (voir la réponse de Saeed). En particulier, il peut lancer, n'est pas sans perte et a une sémantique étrange dans les comparaisons. – CodesInChaos
@CodeInChaos: Je peux le faire ne pas jeter :) Ma plus grande préoccupation ici est que l'action retourne simplement un type différent pour le différencier d'une chaîne, même si autrement, il peut agir parfaitement comme une chaîne. De cette façon, je sais quel ContentType définir sans que l'utilisateur doive faire un travail supplémentaire (il suffit de définir le type de retour de la fonction de manière appropriée). – mpen