Considérez le code suivant:Utilisation des constantes de chaîne dans la conversion implicite
public class TextType {
public TextType(String text) {
underlyingString = text;
}
public static implicit operator String(TextType text) {
return text.underlyingString;
}
private String underlyingString;
}
TextType text = new TextType("Something");
String str = text; // This is OK.
Mais je veux pouvoir faire ce qui suit, si possible.
TextType textFromStringConstant = "SomeOtherText";
Je ne peux pas étendre la classe String avec la surcharge de l'opérateur implicite TextType, mais est-il possible d'assigner une chaîne littérale à une autre classe (qui est gérée par une méthode ou quelque chose)?
La chaîne est un type de référence. Lorsqu'ils ont développé C#, ils devaient évidemment utiliser un chemin pour obtenir une chaîne littérale pour la classe. J'espère juste que ce n'est pas codé en dur dans la langue.
Voir la section 10.10.3 de la spécification pour plus de détails. –