En utilisant les constantes de chaîne dans la conversion implicite
-
22-09-2019 - |
Question
Considérez le code suivant:
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)?
chaîne est un type de référence quand ils ont développé en C #, ils avaient évidemment d'utiliser un moyen d'obtenir une chaîne littérale à la classe. J'espère juste que ce n'est pas hardcoded dans la langue.
La solution
public static implicit operator TextType(String text) {
return new TextType(text);
}
Autres conseils
Ajouter
public static implicit operator TextType(string content) {
return new TextType(content);
}
à votre classe? :)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow